6c023dd9fcf31222b4b0549db80f8b55fbc42793
[reactos.git] / reactos / include / psdk / wdbgexts.h
1 #ifndef _WDBGEXTS_
2 #define _WDBGEXTS_
3
4 enum
5 {
6 DBGKD_SIMULATION_NONE,
7 DBGKD_SIMULATION_EXDI
8 };
9
10 #define KD_SECONDARY_VERSION_DEFAULT 0
11 #define KD_SECONDARY_VERSION_AMD64_OBSOLETE_CONTEXT_1 0
12 #define KD_SECONDARY_VERSION_AMD64_OBSOLETE_CONTEXT_2 1
13 #define KD_SECONDARY_VERSION_AMD64_CONTEXT 2
14 #define CURRENT_KD_SECONDARY_VERSION KD_SECONDARY_VERSION_DEFAULT
15
16 #define DBGKD_VERS_FLAG_MP 0x0001
17 #define DBGKD_VERS_FLAG_DATA 0x0002
18 #define DBGKD_VERS_FLAG_PTR64 0x0004
19 #define DBGKD_VERS_FLAG_NOMM 0x0008
20 #define DBGKD_VERS_FLAG_HSS 0x0010
21 #define DBGKD_VERS_FLAG_PARTITIONS 0x0020
22
23 #define KDBG_TAG 'GBDK'
24
25 typedef struct _DBGKD_GET_VERSION32
26 {
27 USHORT MajorVersion;
28 USHORT MinorVersion;
29 USHORT ProtocolVersion;
30 USHORT Flags;
31 ULONG KernBase;
32 ULONG PsLoadedModuleList;
33 USHORT MachineType;
34 USHORT ThCallbackStack;
35 USHORT NextCallback;
36 USHORT FramePointer;
37 ULONG KiCallUserMode;
38 ULONG KeUserCallbackDispatcher;
39 ULONG BreakpointWithStatus;
40 ULONG DebuggerDataList;
41 } DBGKD_GET_VERSION32, *PDBGKD_GET_VERSION32;
42
43 typedef struct _DBGKD_DEBUG_DATA_HEADER32
44 {
45 LIST_ENTRY32 List;
46 ULONG OwnerTag;
47 ULONG Size;
48 } DBGKD_DEBUG_DATA_HEADER32, *PDBGKD_DEBUG_DATA_HEADER32;
49
50 typedef struct _KDDEBUGGER_DATA32
51 {
52 DBGKD_DEBUG_DATA_HEADER32 Header;
53 ULONG KernBase;
54 ULONG BreakpointWithStatus;
55 ULONG SavedContext;
56 USHORT ThCallbackStack;
57 USHORT NextCallback;
58 USHORT FramePointer;
59 USHORT PaeEnabled:1;
60 ULONG KiCallUserMode;
61 ULONG KeUserCallbackDispatcher;
62 ULONG PsLoadedModuleList;
63 ULONG PsActiveProcessHead;
64 ULONG PspCidTable;
65 ULONG ExpSystemResourcesList;
66 ULONG ExpPagedPoolDescriptor;
67 ULONG ExpNumberOfPagedPools;
68 ULONG KeTimeIncrement;
69 ULONG KeBugCheckCallbackListHead;
70 ULONG KiBugcheckData;
71 ULONG IopErrorLogListHead;
72 ULONG ObpRootDirectoryObject;
73 ULONG ObpTypeObjectType;
74 ULONG MmSystemCacheStart;
75 ULONG MmSystemCacheEnd;
76 ULONG MmSystemCacheWs;
77 ULONG MmPfnDatabase;
78 ULONG MmSystemPtesStart;
79 ULONG MmSystemPtesEnd;
80 ULONG MmSubsectionBase;
81 ULONG MmNumberOfPagingFiles;
82 ULONG MmLowestPhysicalPage;
83 ULONG MmHighestPhysicalPage;
84 ULONG MmNumberOfPhysicalPages;
85 ULONG MmMaximumNonPagedPoolInBytes;
86 ULONG MmNonPagedSystemStart;
87 ULONG MmNonPagedPoolStart;
88 ULONG MmNonPagedPoolEnd;
89 ULONG MmPagedPoolStart;
90 ULONG MmPagedPoolEnd;
91 ULONG MmPagedPoolInformation;
92 ULONG MmPageSize;
93 ULONG MmSizeOfPagedPoolInBytes;
94 ULONG MmTotalCommitLimit;
95 ULONG MmTotalCommittedPages;
96 ULONG MmSharedCommit;
97 ULONG MmDriverCommit;
98 ULONG MmProcessCommit;
99 ULONG MmPagedPoolCommit;
100 ULONG MmExtendedCommit;
101 ULONG MmZeroedPageListHead;
102 ULONG MmFreePageListHead;
103 ULONG MmStandbyPageListHead;
104 ULONG MmModifiedPageListHead;
105 ULONG MmModifiedNoWritePageListHead;
106 ULONG MmAvailablePages;
107 ULONG MmResidentAvailablePages;
108 ULONG PoolTrackTable;
109 ULONG NonPagedPoolDescriptor;
110 ULONG MmHighestUserAddress;
111 ULONG MmSystemRangeStart;
112 ULONG MmUserProbeAddress;
113 ULONG KdPrintCircularBuffer;
114 ULONG KdPrintCircularBufferEnd;
115 ULONG KdPrintWritePointer;
116 ULONG KdPrintRolloverCount;
117 ULONG MmLoadedUserImageList;
118 } KDDEBUGGER_DATA32, *PKDDEBUGGER_DATA32;
119
120 typedef struct _DBGKD_GET_VERSION64
121 {
122 USHORT MajorVersion;
123 USHORT MinorVersion;
124 UCHAR ProtocolVersion;
125 UCHAR KdSecondaryVersion;
126 USHORT Flags;
127 USHORT MachineType;
128 UCHAR MaxPacketType;
129 UCHAR MaxStateChange;
130 UCHAR MaxManipulate;
131 UCHAR Simulation;
132 USHORT Unused[1];
133 ULONG64 KernBase;
134 ULONG64 PsLoadedModuleList;
135 ULONG64 DebuggerDataList;
136 } DBGKD_GET_VERSION64, *PDBGKD_GET_VERSION64;
137
138 typedef struct _DBGKD_DEBUG_DATA_HEADER64
139 {
140 LIST_ENTRY64 List;
141 ULONG OwnerTag;
142 ULONG Size;
143 } DBGKD_DEBUG_DATA_HEADER64, *PDBGKD_DEBUG_DATA_HEADER64;
144
145 typedef union _GCC_ULONG64
146 {
147 ULONG_PTR Pointer;
148 ULONG64 RealPointer;
149 } GCC_ULONG64, *PGCC_ULONG64;
150
151 typedef struct _KDDEBUGGER_DATA64
152 {
153 DBGKD_DEBUG_DATA_HEADER64 Header;
154 ULONG64 KernBase;
155 GCC_ULONG64 BreakpointWithStatus;
156 ULONG64 SavedContext;
157 USHORT ThCallbackStack;
158 USHORT NextCallback;
159 USHORT FramePointer;
160 USHORT PaeEnabled:1;
161 GCC_ULONG64 KiCallUserMode;
162 GCC_ULONG64 KeUserCallbackDispatcher;
163 GCC_ULONG64 PsLoadedModuleList;
164 GCC_ULONG64 PsActiveProcessHead;
165 GCC_ULONG64 PspCidTable;
166 GCC_ULONG64 ExpSystemResourcesList;
167 GCC_ULONG64 ExpPagedPoolDescriptor;
168 GCC_ULONG64 ExpNumberOfPagedPools;
169 GCC_ULONG64 KeTimeIncrement;
170 GCC_ULONG64 KeBugCheckCallbackListHead;
171 GCC_ULONG64 KiBugcheckData;
172 GCC_ULONG64 IopErrorLogListHead;
173 GCC_ULONG64 ObpRootDirectoryObject;
174 GCC_ULONG64 ObpTypeObjectType;
175 GCC_ULONG64 MmSystemCacheStart;
176 GCC_ULONG64 MmSystemCacheEnd;
177 GCC_ULONG64 MmSystemCacheWs;
178 GCC_ULONG64 MmPfnDatabase;
179 GCC_ULONG64 MmSystemPtesStart;
180 GCC_ULONG64 MmSystemPtesEnd;
181 GCC_ULONG64 MmSubsectionBase;
182 GCC_ULONG64 MmNumberOfPagingFiles;
183 GCC_ULONG64 MmLowestPhysicalPage;
184 GCC_ULONG64 MmHighestPhysicalPage;
185 GCC_ULONG64 MmNumberOfPhysicalPages;
186 GCC_ULONG64 MmMaximumNonPagedPoolInBytes;
187 GCC_ULONG64 MmNonPagedSystemStart;
188 GCC_ULONG64 MmNonPagedPoolStart;
189 GCC_ULONG64 MmNonPagedPoolEnd;
190 GCC_ULONG64 MmPagedPoolStart;
191 GCC_ULONG64 MmPagedPoolEnd;
192 GCC_ULONG64 MmPagedPoolInformation;
193 ULONG64 MmPageSize;
194 GCC_ULONG64 MmSizeOfPagedPoolInBytes;
195 GCC_ULONG64 MmTotalCommitLimit;
196 GCC_ULONG64 MmTotalCommittedPages;
197 GCC_ULONG64 MmSharedCommit;
198 GCC_ULONG64 MmDriverCommit;
199 GCC_ULONG64 MmProcessCommit;
200 GCC_ULONG64 MmPagedPoolCommit;
201 GCC_ULONG64 MmExtendedCommit;
202 GCC_ULONG64 MmZeroedPageListHead;
203 GCC_ULONG64 MmFreePageListHead;
204 GCC_ULONG64 MmStandbyPageListHead;
205 GCC_ULONG64 MmModifiedPageListHead;
206 GCC_ULONG64 MmModifiedNoWritePageListHead;
207 GCC_ULONG64 MmAvailablePages;
208 GCC_ULONG64 MmResidentAvailablePages;
209 GCC_ULONG64 PoolTrackTable;
210 GCC_ULONG64 NonPagedPoolDescriptor;
211 GCC_ULONG64 MmHighestUserAddress;
212 GCC_ULONG64 MmSystemRangeStart;
213 GCC_ULONG64 MmUserProbeAddress;
214 GCC_ULONG64 KdPrintCircularBuffer;
215 GCC_ULONG64 KdPrintCircularBufferEnd;
216 GCC_ULONG64 KdPrintWritePointer;
217 GCC_ULONG64 KdPrintRolloverCount;
218 GCC_ULONG64 MmLoadedUserImageList;
219 GCC_ULONG64 NtBuildLab;
220 GCC_ULONG64 KiNormalSystemCall;
221 GCC_ULONG64 KiProcessorBlock;
222 GCC_ULONG64 MmUnloadedDrivers;
223 GCC_ULONG64 MmLastUnloadedDriver;
224 GCC_ULONG64 MmTriageActionTaken;
225 GCC_ULONG64 MmSpecialPoolTag;
226 GCC_ULONG64 KernelVerifier;
227 GCC_ULONG64 MmVerifierData;
228 GCC_ULONG64 MmAllocatedNonPagedPool;
229 GCC_ULONG64 MmPeakCommitment;
230 GCC_ULONG64 MmTotalCommitLimitMaximum;
231 GCC_ULONG64 CmNtCSDVersion;
232 GCC_ULONG64 MmPhysicalMemoryBlock;
233 GCC_ULONG64 MmSessionBase;
234 GCC_ULONG64 MmSessionSize;
235 GCC_ULONG64 MmSystemParentTablePage;
236 GCC_ULONG64 MmVirtualTranslationBase;
237 USHORT OffsetKThreadNextProcessor;
238 USHORT OffsetKThreadTeb;
239 USHORT OffsetKThreadKernelStack;
240 USHORT OffsetKThreadInitialStack;
241 USHORT OffsetKThreadApcProcess;
242 USHORT OffsetKThreadState;
243 USHORT OffsetKThreadBStore;
244 USHORT OffsetKThreadBStoreLimit;
245 USHORT SizeEProcess;
246 USHORT OffsetEprocessPeb;
247 USHORT OffsetEprocessParentCID;
248 USHORT OffsetEprocessDirectoryTableBase;
249 USHORT SizePrcb;
250 USHORT OffsetPrcbDpcRoutine;
251 USHORT OffsetPrcbCurrentThread;
252 USHORT OffsetPrcbMhz;
253 USHORT OffsetPrcbCpuType;
254 USHORT OffsetPrcbVendorString;
255 USHORT OffsetPrcbProcStateContext;
256 USHORT OffsetPrcbNumber;
257 USHORT SizeEThread;
258 GCC_ULONG64 KdPrintCircularBufferPtr;
259 GCC_ULONG64 KdPrintBufferSize;
260 GCC_ULONG64 KeLoaderBlock;
261 USHORT SizePcr;
262 USHORT OffsetPcrSelfPcr;
263 USHORT OffsetPcrCurrentPrcb;
264 USHORT OffsetPcrContainedPrcb;
265 USHORT OffsetPcrInitialBStore;
266 USHORT OffsetPcrBStoreLimit;
267 USHORT OffsetPcrInitialStack;
268 USHORT OffsetPcrStackLimit;
269 USHORT OffsetPrcbPcrPage;
270 USHORT OffsetPrcbProcStateSpecialReg;
271 USHORT GdtR0Code;
272 USHORT GdtR0Data;
273 USHORT GdtR0Pcr;
274 USHORT GdtR3Code;
275 USHORT GdtR3Data;
276 USHORT GdtR3Teb;
277 USHORT GdtLdt;
278 USHORT GdtTss;
279 USHORT Gdt64R3CmCode;
280 USHORT Gdt64R3CmTeb;
281 GCC_ULONG64 IopNumTriageDumpDataBlocks;
282 GCC_ULONG64 IopTriageDumpDataBlocks;
283 GCC_ULONG64 VfCrashDataBlock;
284 } KDDEBUGGER_DATA64, *PKDDEBUGGER_DATA64;
285
286 #endif