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