ReactOS  r75214
kd64.h
Go to the documentation of this file.
1 /*
2  * PROJECT: ReactOS Kernel
3  * LICENSE: GPL - See COPYING in the top level directory
4  * FILE: ntoskrnl/include/internal/kd64.h
5  * PURPOSE: Internal header for the KD64 Library
6  * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
7  */
8 
9 //
10 // Default size of the DbgPrint log buffer
11 //
12 #if DBG
13 #define KD_DEFAULT_LOG_BUFFER_SIZE 0x8000
14 #else
15 #define KD_DEFAULT_LOG_BUFFER_SIZE 0x1000
16 #endif
17 
18 //
19 // Maximum supported number of breakpoints
20 //
21 #define KD_BREAKPOINT_MAX 32
22 
23 //
24 // Highest limit starting which we consider that breakpoint addresses
25 // are either in system space, or in user space but inside shared DLLs.
26 //
27 // I'm wondering whether this can be computed using MmHighestUserAddress
28 // or whether there is already some #define somewhere else...
29 // See http://www.drdobbs.com/windows/faster-dll-load-load/184416918
30 // and http://www.drdobbs.com/rebasing-win32-dlls/184416272
31 // for a tentative explanation.
32 //
33 #define KD_HIGHEST_USER_BREAKPOINT_ADDRESS (PVOID)0x60000000 // MmHighestUserAddress
34 
35 //
36 // Breakpoint Status Flags
37 //
38 #define KD_BREAKPOINT_ACTIVE 0x01
39 #define KD_BREAKPOINT_PENDING 0x02
40 #define KD_BREAKPOINT_SUSPENDED 0x04
41 #define KD_BREAKPOINT_EXPIRED 0x08
42 
43 //
44 // Structure for Breakpoints
45 //
46 typedef struct _BREAKPOINT_ENTRY
47 {
53 
54 //
55 // Debug and Multi-Processor Switch Routine Definitions
56 //
57 typedef
58 BOOLEAN
60  IN PKTRAP_FRAME TrapFrame,
61  IN PKEXCEPTION_FRAME ExceptionFrame,
62  IN PEXCEPTION_RECORD ExceptionRecord,
65  IN BOOLEAN SecondChance
66 );
67 
68 typedef
69 BOOLEAN
71  IN PEXCEPTION_RECORD ExceptionRecord,
73  IN BOOLEAN SecondChance
74 );
75 
76 //
77 // Initialization Routines
78 //
79 BOOLEAN
80 NTAPI
83  PLOADER_PARAMETER_BLOCK LoaderBlock
84 );
85 
86 VOID
87 NTAPI
89  VOID
90 );
91 
92 //
93 // Determines if the kernel debugger must handle a particular trap
94 //
95 BOOLEAN
96 NTAPI
98  IN PEXCEPTION_RECORD ExceptionRecord,
99  IN PCONTEXT Context,
100  IN KPROCESSOR_MODE PreviousMode
101 );
102 
103 //
104 // Multi-Processor Switch Support
105 //
106 BOOLEAN
107 NTAPI
109  IN PEXCEPTION_RECORD ExceptionRecord,
111  IN BOOLEAN SecondChanceException
112 );
113 
114 //
115 // Time Slip Support
116 //
117 VOID
118 NTAPI
120  IN PVOID Context
121 );
122 
123 VOID
124 NTAPI
126  IN PKDPC Dpc,
130 );
131 
132 //
133 // Debug Trap Handlers
134 //
135 BOOLEAN
136 NTAPI
137 KdpStub(
138  IN PKTRAP_FRAME TrapFrame,
139  IN PKEXCEPTION_FRAME ExceptionFrame,
140  IN PEXCEPTION_RECORD ExceptionRecord,
142  IN KPROCESSOR_MODE PreviousMode,
143  IN BOOLEAN SecondChanceException
144 );
145 
146 BOOLEAN
147 NTAPI
148 KdpTrap(
149  IN PKTRAP_FRAME TrapFrame,
150  IN PKEXCEPTION_FRAME ExceptionFrame,
151  IN PEXCEPTION_RECORD ExceptionRecord,
153  IN KPROCESSOR_MODE PreviousMode,
154  IN BOOLEAN SecondChanceException
155 );
156 
157 //
158 // Port Locking
159 //
160 VOID
161 NTAPI
163  VOID
164 );
165 
166 VOID
167 NTAPI
169  VOID
170 );
171 
172 BOOLEAN
173 NTAPI
175  VOID
176 );
177 
178 //
179 // Debugger Enter, Exit, Enable and Disable
180 //
181 BOOLEAN
182 NTAPI
184  IN PKTRAP_FRAME TrapFrame,
185  IN PKEXCEPTION_FRAME ExceptionFrame
186 );
187 
188 VOID
189 NTAPI
192 );
193 
194 NTSTATUS
195 NTAPI
197  IN BOOLEAN NeedLock
198 );
199 
200 NTSTATUS
201 NTAPI
203  IN BOOLEAN NeedLock
204 );
205 
206 //
207 // Debug Event Handlers
208 //
209 NTSTATUS
210 NTAPI
211 KdpPrint(
213  IN ULONG Level,
214  IN LPSTR String,
215  IN USHORT Length,
216  IN KPROCESSOR_MODE PreviousMode,
217  IN PKTRAP_FRAME TrapFrame,
218  IN PKEXCEPTION_FRAME ExceptionFrame,
220 );
221 
222 USHORT
223 NTAPI
224 KdpPrompt(
225  IN LPSTR PromptString,
226  IN USHORT PromptLength,
227  OUT LPSTR ResponseString,
229  IN KPROCESSOR_MODE PreviousMode,
230  IN PKTRAP_FRAME TrapFrame,
231  IN PKEXCEPTION_FRAME ExceptionFrame
232 );
233 
234 VOID
235 NTAPI
236 KdpSymbol(
238  IN PKD_SYMBOLS_INFO SymbolInfo,
239  IN BOOLEAN Unload,
240  IN KPROCESSOR_MODE PreviousMode,
242  IN PKTRAP_FRAME TrapFrame,
243  IN PKEXCEPTION_FRAME ExceptionFrame
244 );
245 
246 VOID
247 NTAPI
249  IN PSTRING NameString,
250  IN PSTRING CommandString,
251  IN KPROCESSOR_MODE PreviousMode,
253  IN PKTRAP_FRAME TrapFrame,
254  IN PKEXCEPTION_FRAME ExceptionFrame
255 );
256 
257 //
258 // State Change Notifications
259 //
260 VOID
261 NTAPI
263  IN PSTRING PathName,
264  IN PKD_SYMBOLS_INFO SymbolInfo,
265  IN BOOLEAN Unload,
266  IN OUT PCONTEXT Context
267 );
268 
269 VOID
270 NTAPI
272  IN PSTRING NameString,
273  IN PSTRING CommandString,
274  IN OUT PCONTEXT Context
275 );
276 
277 BOOLEAN
278 NTAPI
280  IN PEXCEPTION_RECORD ExceptionRecord,
281  IN OUT PCONTEXT Context,
282  IN BOOLEAN SecondChanceException
283 );
284 
285 //
286 // Breakpoint Support
287 //
288 ULONG
289 NTAPI
292 );
293 
294 VOID
295 NTAPI
297  VOID
298 );
299 
300 BOOLEAN
301 NTAPI
303  IN ULONG BpEntry
304 );
305 
306 BOOLEAN
307 NTAPI
309  IN PVOID Base,
310  IN PVOID Limit
311 );
312 
313 VOID
314 NTAPI
316  IN ULONG BpEntry
317 );
318 
319 VOID
320 NTAPI
322  VOID
323 );
324 
325 VOID
326 NTAPI
328  VOID
329 );
330 
331 //
332 // Routine to determine if it is safe to disable the debugger
333 //
334 NTSTATUS
335 NTAPI
337  VOID
338 );
339 
340 //
341 // Safe memory read & write Support
342 //
343 NTSTATUS
344 NTAPI
347  IN PVOID Buffer,
348  IN ULONG TotalSize,
350  IN ULONG Flags,
351  OUT PULONG ActualSize OPTIONAL
352 );
353 
354 //
355 // Internal memory handling routines for KD isolation
356 //
357 VOID
358 NTAPI
361  IN PVOID Source,
363 );
364 
365 VOID
366 NTAPI
370 );
371 
372 //
373 // Low Level Support Routines for the KD API
374 //
375 
376 //
377 // Version
378 //
379 VOID
380 NTAPI
383 );
384 
385 //
386 // Context
387 //
388 VOID
389 NTAPI
392  IN PCONTEXT Context
393 );
394 
395 VOID
396 NTAPI
398  IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange,
399  IN PCONTEXT Context
400 );
401 
402 //
403 // MSR
404 //
405 NTSTATUS
406 NTAPI
408  IN ULONG Msr,
409  OUT PLARGE_INTEGER MsrValue
410 );
411 
412 NTSTATUS
413 NTAPI
415  IN ULONG Msr,
416  IN PLARGE_INTEGER MsrValue
417 );
418 
419 //
420 // Bus
421 //
422 NTSTATUS
423 NTAPI
425  IN ULONG BusDataType,
428  IN ULONG Offset,
429  IN PVOID Buffer,
430  IN ULONG Length,
431  OUT PULONG ActualLength
432 );
433 
434 NTSTATUS
435 NTAPI
437  IN ULONG BusDataType,
440  IN ULONG Offset,
441  IN PVOID Buffer,
442  IN ULONG Length,
443  OUT PULONG ActualLength
444 );
445 
446 //
447 // Control Space
448 //
449 NTSTATUS
450 NTAPI
454  IN PVOID Buffer,
455  IN ULONG Length,
456  OUT PULONG ActualLength
457 );
458 
459 NTSTATUS
460 NTAPI
464  IN PVOID Buffer,
465  IN ULONG Length,
466  OUT PULONG ActualLength
467 );
468 
469 //
470 // I/O Space
471 //
472 NTSTATUS
473 NTAPI
478  IN ULONG64 IoAddress,
479  IN PVOID DataValue,
480  IN ULONG DataSize,
481  OUT PULONG ActualDataSize
482 );
483 
484 NTSTATUS
485 NTAPI
490  IN ULONG64 IoAddress,
491  IN PVOID DataValue,
492  IN ULONG DataSize,
493  OUT PULONG ActualDataSize
494 );
495 
496 //
497 // Low Memory
498 //
499 NTSTATUS
500 NTAPI
502  IN ULONG Flags
503 );
504 
505 //
506 // Internal routine for sending strings directly to the debugger
507 //
508 VOID
509 __cdecl
510 KdpDprintf(
511  IN PCHAR Format,
512  ...
513 );
514 
515 //
516 // Global KD Data
517 //
524 extern ULONG KdDisableCount;
525 extern KD_CONTEXT KdpContext;
526 extern PKDEBUG_ROUTINE KiDebugRoutine;
527 extern PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine;
529 extern BOOLEAN KdPitchDebugger;
531 extern BOOLEAN KdBlockEnable;
536 extern KDPC KdpTimeSlipDpc;
537 extern KTIMER KdpTimeSlipTimer;
539 extern LONG KdpTimeSlipPending;
542 extern BOOLEAN KdpPortLocked;
544 extern BOOLEAN KdpContextSent;
548 extern ULONG Kd_WIN2000_Mask;
549 extern PULONG KdComponentTable[104];
550 extern CHAR KdpMessageBuffer[0x1000], KdpPathBuffer[0x1000];
558 extern ULONG TraceDataBuffer[40];
DWORD *typedef PVOID
Definition: winlogon.h:52
BOOLEAN KdpContextSent
Definition: kddata.c:69
#define IN
Definition: typedefs.h:39
DBGKD_GET_VERSION64 KdVersionBlock
Definition: kddata.c:371
PVOID ULONG Address
Definition: oprghdlr.h:14
BOOLEAN(NTAPI * PKDEBUG_ROUTINE)(IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame, IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context, IN KPROCESSOR_MODE PreviousMode, IN BOOLEAN SecondChance)
Definition: kd64.h:59
BOOLEAN KdpDebuggerStructuresInitialized
Definition: kddata.c:88
#define __cdecl
Definition: accygwin.h:78
BOOLEAN Enable
Definition: acefiex.h:245
BOOLEAN(NTAPI * PKDEBUG_SWITCH_ROUTINE)(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context, IN BOOLEAN SecondChance)
Definition: kd64.h:70
PKDEBUG_ROUTINE KiDebugRoutine
Definition: kdmain.c:471
VOID NTAPI Unload(PDRIVER_OBJECT DriverObject)
Definition: csqtest.c:160
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
Definition: iofuncs.h:2268
char CHAR
Definition: xmlstorage.h:175
BOOLEAN KdAutoEnableOnEvent
Definition: kddata.c:84
BOOLEAN NTAPI KdpStub(IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame, IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT ContextRecord, IN KPROCESSOR_MODE PreviousMode, IN BOOLEAN SecondChanceException)
Definition: kdtrap.c:271
_In_opt_ ULONG Base
Definition: rtlfuncs.h:2327
USHORT NTAPI KdpPrompt(IN LPSTR PromptString, IN USHORT PromptLength, OUT LPSTR ResponseString, IN USHORT MaximumResponseLength, IN KPROCESSOR_MODE PreviousMode, IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame)
ULONG KdComponentTableSize
Definition: kddata.c:360
BOOLEAN KdPreviouslyEnabled
Definition: kddata.c:87
KSPIN_LOCK KdpDebuggerLock
Definition: kddata.c:67
BOOLEAN KdPitchDebugger
Definition: kdmain.c:21
NTSTATUS NTAPI KdpSysWriteBusData(IN ULONG BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN ULONG Offset, IN PVOID Buffer, IN ULONG Length, OUT PULONG ActualLength)
Definition: kdx64.c:148
BOOLEAN KdBlockEnable
Definition: kddata.c:85
_In_ UCHAR Processor
Definition: kefuncs.h:695
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
Definition: wmitypes.h:55
VOID NTAPI KdpSuspendBreakPoint(IN ULONG BpEntry)
Definition: kdbreak.c:391
NTSTATUS NTAPI KdpAllowDisable(VOID)
Definition: kdx64.c:364
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:359
VOID NTAPI KdExitDebugger(IN BOOLEAN Enable)
Definition: kdapi.c:1924
char * LPSTR
Definition: xmlstorage.h:182
BOOLEAN BreakpointsSuspended
Definition: kddata.c:99
PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine
Definition: kddata.c:75
CHAR KdpMessageBuffer[0x1000]
Definition: kddata.c:127
LARGE_INTEGER KdTimerDifference
Definition: kddata.c:122
NTSTATUS NTAPI KdpSysCheckLowMemory(IN ULONG Flags)
Definition: kdx64.c:356
uint32_t ULONG_PTR
Definition: typedefs.h:64
VOID NTAPI KdpCommandString(IN PSTRING NameString, IN PSTRING CommandString, IN KPROCESSOR_MODE PreviousMode, IN PCONTEXT ContextRecord, IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame)
Definition: kdprint.c:133
LONG KdpTimeSlipPending
Definition: kddata.c:119
struct _BREAKPOINT_ENTRY BREAKPOINT_ENTRY
VOID NTAPI KdSetOwedBreakpoints(VOID)
Definition: kdbreak.c:105
#define KD_DEFAULT_LOG_BUFFER_SIZE
Definition: kd64.h:15
LARGE_INTEGER KdTimerStart
Definition: kd64.h:546
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
CHAR16 * String
Definition: acefiex.h:201
BOOLEAN KdpControlCPressed
Definition: kddata.c:68
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
ULONG_PTR DirectoryTableBase
Definition: kd64.h:49
CHAR KdpPathBuffer[0x1000]
Definition: kddata.c:128
_Inout_ PUCHAR _In_ PUCHAR _Out_ PUCHAR _Out_ PULONG ChunkSize
Definition: rtlfuncs.h:2276
long LONG
Definition: pedump.c:60
NTSTATUS NTAPI KdpSysWriteIoSpace(IN ULONG InterfaceType, IN ULONG BusNumber, IN ULONG AddressSpace, IN ULONG64 IoAddress, IN PVOID DataValue, IN ULONG DataSize, OUT PULONG ActualDataSize)
Definition: kdx64.c:300
VOID __cdecl KdpDprintf(IN PCHAR Format,...)
Definition: kdprint.c:412
LARGE_INTEGER KdPerformanceCounterRate
Definition: kddata.c:91
uint64_t ULONG64
Definition: typedefs.h:66
BOOLEAN KdpOweBreakpoint
Definition: kddata.c:98
NTSTATUS NTAPI KdpSysReadControlSpace(IN ULONG Processor, IN ULONG64 BaseAddress, IN PVOID Buffer, IN ULONG Length, OUT PULONG ActualLength)
Definition: kdx64.c:162
BOOLEAN KdEnteredDebugger
Definition: kdmain.c:17
struct _BREAKPOINT_ENTRY * PBREAKPOINT_ENTRY
ULONG_PTR KdpCurrentSymbolEnd
Definition: kddata.c:105
BOOLEAN NTAPI KdpDeleteBreakpoint(IN ULONG BpEntry)
Definition: kdbreak.c:311
WORK_QUEUE_ITEM KdpTimeSlipWorkItem
Definition: kddata.c:118
VOID NTAPI KdpPortUnlock(VOID)
Definition: kdlock.c:27
KSPIN_LOCK KdpDataSpinLock
Definition: kddata.c:366
Definition: bufpool.h:45
CHAR KdPrintDefaultCircularBuffer[KD_DEFAULT_LOG_BUFFER_SIZE]
Definition: kddata.c:133
BOOLEAN NTAPI KdpPollBreakInWithPortLock(VOID)
Definition: kdlock.c:35
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
Definition: halfuncs.h:156
VOID NTAPI KdUpdateDataBlock(VOID)
Definition: kdinit.c:72
KD_CONTEXT KdpContext
Definition: kdmain.c:23
ULONG Flags
Definition: kd64.h:48
BOOLEAN KdIgnoreUmExceptions
Definition: kdmain.c:22
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
Definition: ketypes.h:660
_In_ ULONG MaximumResponseLength
Definition: kdfuncs.h:11
unsigned char BOOLEAN
_In_ KPROCESSOR_MODE PreviousMode
Definition: sefuncs.h:103
VOID NTAPI KdpSymbol(IN PSTRING DllPath, IN PKD_SYMBOLS_INFO SymbolInfo, IN BOOLEAN Unload, IN KPROCESSOR_MODE PreviousMode, IN PCONTEXT ContextRecord, IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame)
Definition: kdprint.c:172
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
Definition: mmfuncs.h:404
_In_ LARGE_INTEGER _In_opt_ PKDPC Dpc
Definition: kefuncs.h:524
NTSTATUS NTAPI KdpSysWriteMsr(IN ULONG Msr, IN PLARGE_INTEGER MsrValue)
Definition: kdx64.c:115
NTSTATUS NTAPI KdEnableDebuggerWithLock(IN BOOLEAN NeedLock)
Definition: kdapi.c:1959
ACPI_EFI_GUID ACPI_EFI_INTERFACE_TYPE InterfaceType
Definition: acefiex.h:577
KDDEBUGGER_DATA64 KdDebuggerDataBlock
Definition: kdpacket.c:21
_In_ BOOLEAN Handled
Definition: ketypes.h:337
NTSTATUS NTAPI KdDisableDebuggerWithLock(IN BOOLEAN NeedLock)
Definition: kdapi.c:2035
ULONG Kd_WIN2000_Mask
Definition: kdmain.c:24
KD_BREAKPOINT_TYPE Content
Definition: kd64.h:51
KD_BREAKPOINT_TYPE KdpBreakpointInstruction
Definition: kddata.c:97
NTSTATUS NTAPI KdpSysReadBusData(IN ULONG BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN ULONG Offset, IN PVOID Buffer, IN ULONG Length, OUT PULONG ActualLength)
Definition: kdx64.c:134
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
Definition: rtlfuncs.h:2875
VOID NTAPI KdpReportLoadSymbolsStateChange(IN PSTRING PathName, IN PKD_SYMBOLS_INFO SymbolInfo, IN BOOLEAN Unload, IN OUT PCONTEXT Context)
Definition: kdapi.c:1581
BOOLEAN NTAPI KdIsThisAKdTrap(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context, IN KPROCESSOR_MODE PreviousMode)
Definition: kdmain.c:259
VOID NTAPI KdpSuspendAllBreakPoints(VOID)
Definition: kdbreak.c:407
NTSTATUS NTAPI KdpSysReadIoSpace(IN ULONG InterfaceType, IN ULONG BusNumber, IN ULONG AddressSpace, IN ULONG64 IoAddress, IN PVOID DataValue, IN ULONG DataSize, OUT PULONG ActualDataSize)
Definition: kdarm.c:108
CCHAR KPROCESSOR_MODE
Definition: ketypes.h:7
_IRQL_requires_same_ _In_ PVOID _Inout_ struct _CONTEXT * ContextRecord
Definition: ntbasedef.h:653
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG _In_ ULONG SlotNumber
Definition: halfuncs.h:156
VOID NTAPI KdpSysGetVersion(IN PDBGKD_GET_VERSION64 Version)
Definition: kdapi.c:428
char * PBOOLEAN
Definition: retypes.h:11
ULONG_PTR KdpCurrentSymbolStart
Definition: kddata.c:105
ULONG KdDisableCount
Definition: kddata.c:90
VOID UINTN Length
Definition: acefiex.h:718
Definition: ketypes.h:672
#define KD_BREAKPOINT_MAX
Definition: kd64.h:21
Definition: typedefs.h:118
NTSTATUS NTAPI KdpSysWriteControlSpace(IN ULONG Processor, IN ULONG64 BaseAddress, IN PVOID Buffer, IN ULONG Length, OUT PULONG ActualLength)
Definition: kdx64.c:213
LARGE_INTEGER KdTimerStop
Definition: kddata.c:122
ULONG PVOID Reserved
Definition: ntimage.h:533
UINT64 UINTN DataSize
Definition: acefiex.h:494
ULONG NTAPI KdpAddBreakpoint(IN PVOID Address)
Definition: kdbreak.c:20
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
Definition: ketypes.h:660
#define KD_BREAKPOINT_TYPE
Definition: ke.h:93
KDPC KdpTimeSlipDpc
Definition: kddata.c:116
BOOLEAN NTAPI KdpTrap(IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame, IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT ContextRecord, IN KPROCESSOR_MODE PreviousMode, IN BOOLEAN SecondChanceException)
Definition: kdtrap.c:135
ULONG_PTR SIZE_T
Definition: typedefs.h:79
LONG NTSTATUS
Definition: DriverTester.h:11
ULONG TraceDataBufferPosition
Definition: kddata.c:111
BOOLEAN NTAPI KdInitSystem(ULONG Reserved, PLOADER_PARAMETER_BLOCK LoaderBlock)
Definition: kdinit.c:174
unsigned short USHORT
Definition: pedump.c:61
LIST_ENTRY KdpDebuggerDataListHead
Definition: kddata.c:365
VOID NTAPI KdpSetContextState(IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange, IN PCONTEXT Context)
Definition: kdx64.c:66
PKEVENT KdpTimeSlipEvent
Definition: kddata.c:120
static const char const char * DllPath
Definition: image.c:34
ULONG KSPIN_LOCK
Definition: env_spec_w32.h:72
BREAKPOINT_ENTRY KdpBreakpointTable[KD_BREAKPOINT_MAX]
Definition: kddata.c:96
unsigned int * PULONG
Definition: retypes.h:1
ULONG TraceDataBuffer[40]
Definition: kddata.c:110
BOOLEAN KdBreakAfterSymbolLoad
Definition: kdmain.c:19
VOID NTAPI KdpZeroMemory(IN PVOID Destination, IN SIZE_T Length)
Definition: kdapi.c:34
VOID NTAPI KdpTimeSlipDpcRoutine(IN PKDPC Dpc, IN PVOID DeferredContext, IN PVOID SystemArgument1, IN PVOID SystemArgument2)
Definition: kdapi.c:1785
VOID NTAPI KdpTimeSlipWork(IN PVOID Context)
Definition: kdapi.c:1811
BOOLEAN KdpPortLocked
Definition: kddata.c:66
VOID NTAPI KdpMoveMemory(IN PVOID Destination, IN PVOID Source, IN SIZE_T Length)
Definition: kdapi.c:20
signed char * PCHAR
Definition: retypes.h:7
#define BOOLEAN
Definition: pedump.c:73
#define OUT
Definition: typedefs.h:40
PVOID Address
Definition: kd64.h:50
struct tagContext Context
Definition: acpixf.h:1013
BOOLEAN NTAPI KdpReportExceptionStateChange(IN PEXCEPTION_RECORD ExceptionRecord, IN OUT PCONTEXT Context, IN BOOLEAN SecondChanceException)
Definition: kdapi.c:1730
unsigned int ULONG
Definition: retypes.h:1
NTSTATUS NTAPI KdpPrint(IN ULONG ComponentId, IN ULONG Level, IN LPSTR String, IN USHORT Length, IN KPROCESSOR_MODE PreviousMode, IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame, OUT PBOOLEAN Handled)
Definition: kdprint.c:317
BOOLEAN NTAPI KdEnterDebugger(IN PKTRAP_FRAME TrapFrame, IN PKEXCEPTION_FRAME ExceptionFrame)
Definition: kdapi.c:1871
PULONG KdComponentTable[104]
Definition: kdmain.c:33
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 const char UINT32 const char const char UINT32 ComponentId
Definition: acpixf.h:1255
KSPIN_LOCK KdpTimeSlipEventLock
Definition: kddata.c:121
VOID NTAPI KdpPortLock(VOID)
Definition: kdlock.c:19
BOOLEAN NTAPI KdpSwitchProcessor(IN PEXCEPTION_RECORD ExceptionRecord, IN OUT PCONTEXT ContextRecord, IN BOOLEAN SecondChanceException)
Definition: kdapi.c:1833
Definition: kd64.h:46
BOOLEAN NTAPI KdpDeleteBreakpointRange(IN PVOID Base, IN PVOID Limit)
Definition: kdbreak.c:340
VOID NTAPI KdpGetStateChange(IN PDBGKD_MANIPULATE_STATE64 State, IN PCONTEXT Context)
Definition: kdx64.c:22
KTIMER KdpTimeSlipTimer
Definition: kddata.c:117
_In_ LONG _In_ LONG Limit
Definition: kefuncs.h:328
NTSTATUS NTAPI KdpCopyMemoryChunks(IN ULONG64 Address, IN PVOID Buffer, IN ULONG TotalSize, IN ULONG ChunkSize, IN ULONG Flags, OUT PULONG ActualSize OPTIONAL)
Definition: kdapi.c:46
IN HDEVINFO IN PSP_DEVINFO_DATA DeviceInfoData OPTIONAL
Definition: devinst.c:44
VOID NTAPI KdpRestoreAllBreakpoints(VOID)
Definition: kdbreak.c:368
ULONG KdpNumInternalBreakpoints
Definition: kddata.c:100
VOID NTAPI KdpReportCommandStringStateChange(IN PSTRING NameString, IN PSTRING CommandString, IN OUT PCONTEXT Context)
Definition: kdapi.c:1653
NTSTATUS NTAPI KdpSysReadMsr(IN ULONG Msr, OUT PLARGE_INTEGER MsrValue)
Definition: kdx64.c:96
_In_opt_ PVOID DeferredContext
Definition: ketypes.h:660