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
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
23 #define KDBG_TAG 'GBDK'
25 typedef struct _DBGKD_GET_VERSION32
29 USHORT ProtocolVersion
;
32 ULONG PsLoadedModuleList
;
34 USHORT ThCallbackStack
;
38 ULONG KeUserCallbackDispatcher
;
39 ULONG BreakpointWithStatus
;
40 ULONG DebuggerDataList
;
41 } DBGKD_GET_VERSION32
, *PDBGKD_GET_VERSION32
;
43 typedef struct _DBGKD_DEBUG_DATA_HEADER32
48 } DBGKD_DEBUG_DATA_HEADER32
, *PDBGKD_DEBUG_DATA_HEADER32
;
50 typedef struct _KDDEBUGGER_DATA32
52 DBGKD_DEBUG_DATA_HEADER32 Header
;
54 ULONG BreakpointWithStatus
;
56 USHORT ThCallbackStack
;
61 ULONG KeUserCallbackDispatcher
;
62 ULONG PsLoadedModuleList
;
63 ULONG PsActiveProcessHead
;
65 ULONG ExpSystemResourcesList
;
66 ULONG ExpPagedPoolDescriptor
;
67 ULONG ExpNumberOfPagedPools
;
68 ULONG KeTimeIncrement
;
69 ULONG KeBugCheckCallbackListHead
;
71 ULONG IopErrorLogListHead
;
72 ULONG ObpRootDirectoryObject
;
73 ULONG ObpTypeObjectType
;
74 ULONG MmSystemCacheStart
;
75 ULONG MmSystemCacheEnd
;
76 ULONG MmSystemCacheWs
;
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
;
91 ULONG MmPagedPoolInformation
;
93 ULONG MmSizeOfPagedPoolInBytes
;
94 ULONG MmTotalCommitLimit
;
95 ULONG MmTotalCommittedPages
;
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
;
120 typedef struct _DBGKD_GET_VERSION64
124 UCHAR ProtocolVersion
;
125 UCHAR KdSecondaryVersion
;
129 UCHAR MaxStateChange
;
134 ULONG64 PsLoadedModuleList
;
135 ULONG64 DebuggerDataList
;
136 } DBGKD_GET_VERSION64
, *PDBGKD_GET_VERSION64
;
138 typedef struct _DBGKD_DEBUG_DATA_HEADER64
143 } DBGKD_DEBUG_DATA_HEADER64
, *PDBGKD_DEBUG_DATA_HEADER64
;
145 typedef union _GCC_ULONG64
149 } GCC_ULONG64
, *PGCC_ULONG64
;
151 typedef struct _KDDEBUGGER_DATA64
153 DBGKD_DEBUG_DATA_HEADER64 Header
;
155 GCC_ULONG64 BreakpointWithStatus
;
156 ULONG64 SavedContext
;
157 USHORT ThCallbackStack
;
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
;
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
;
246 USHORT OffsetEprocessPeb
;
247 USHORT OffsetEprocessParentCID
;
248 USHORT OffsetEprocessDirectoryTableBase
;
250 USHORT OffsetPrcbDpcRoutine
;
251 USHORT OffsetPrcbCurrentThread
;
252 USHORT OffsetPrcbMhz
;
253 USHORT OffsetPrcbCpuType
;
254 USHORT OffsetPrcbVendorString
;
255 USHORT OffsetPrcbProcStateContext
;
256 USHORT OffsetPrcbNumber
;
258 GCC_ULONG64 KdPrintCircularBufferPtr
;
259 GCC_ULONG64 KdPrintBufferSize
;
260 GCC_ULONG64 KeLoaderBlock
;
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
;
279 USHORT Gdt64R3CmCode
;
281 GCC_ULONG64 IopNumTriageDumpDataBlocks
;
282 GCC_ULONG64 IopTriageDumpDataBlocks
;
283 GCC_ULONG64 VfCrashDataBlock
;
284 } KDDEBUGGER_DATA64
, *PKDDEBUGGER_DATA64
;