ReactOS  0.4.9-dev-728-g3d012a4
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 #pragma once
10 
11 //
12 // Default size of the DbgPrint log buffer
13 //
14 #if DBG
15 #define KD_DEFAULT_LOG_BUFFER_SIZE 0x8000
16 #else
17 #define KD_DEFAULT_LOG_BUFFER_SIZE 0x1000
18 #endif
19 
20 //
21 // Maximum supported number of breakpoints
22 //
23 #define KD_BREAKPOINT_MAX 32
24 
25 //
26 // Highest limit starting which we consider that breakpoint addresses
27 // are either in system space, or in user space but inside shared DLLs.
28 //
29 // I'm wondering whether this can be computed using MmHighestUserAddress
30 // or whether there is already some #define somewhere else...
31 // See http://www.drdobbs.com/windows/faster-dll-load-load/184416918
32 // and http://www.drdobbs.com/rebasing-win32-dlls/184416272
33 // for a tentative explanation.
34 //
35 #define KD_HIGHEST_USER_BREAKPOINT_ADDRESS (PVOID)0x60000000 // MmHighestUserAddress
36 
37 //
38 // Breakpoint Status Flags
39 //
40 #define KD_BREAKPOINT_ACTIVE 0x01
41 #define KD_BREAKPOINT_PENDING 0x02
42 #define KD_BREAKPOINT_SUSPENDED 0x04
43 #define KD_BREAKPOINT_EXPIRED 0x08
44 
45 //
46 // Structure for Breakpoints
47 //
48 typedef struct _BREAKPOINT_ENTRY
49 {
55 
56 //
57 // Debug and Multi-Processor Switch Routine Definitions
58 //
59 typedef
60 BOOLEAN
62  IN PKTRAP_FRAME TrapFrame,
63  IN PKEXCEPTION_FRAME ExceptionFrame,
64  IN PEXCEPTION_RECORD ExceptionRecord,
67  IN BOOLEAN SecondChance
68 );
69 
70 typedef
71 BOOLEAN
73  IN PEXCEPTION_RECORD ExceptionRecord,
75  IN BOOLEAN SecondChance
76 );
77 
78 //
79 // Initialization Routines
80 //
81 BOOLEAN
82 NTAPI
85  PLOADER_PARAMETER_BLOCK LoaderBlock
86 );
87 
88 VOID
89 NTAPI
91  VOID
92 );
93 
94 //
95 // Determines if the kernel debugger must handle a particular trap
96 //
97 BOOLEAN
98 NTAPI
100  IN PEXCEPTION_RECORD ExceptionRecord,
101  IN PCONTEXT Context,
102  IN KPROCESSOR_MODE PreviousMode
103 );
104 
105 //
106 // Multi-Processor Switch Support
107 //
108 BOOLEAN
109 NTAPI
111  IN PEXCEPTION_RECORD ExceptionRecord,
113  IN BOOLEAN SecondChanceException
114 );
115 
116 //
117 // Time Slip Support
118 //
119 VOID
120 NTAPI
122  IN PVOID Context
123 );
124 
125 VOID
126 NTAPI
128  IN PKDPC Dpc,
132 );
133 
134 //
135 // Debug Trap Handlers
136 //
137 BOOLEAN
138 NTAPI
139 KdpStub(
140  IN PKTRAP_FRAME TrapFrame,
141  IN PKEXCEPTION_FRAME ExceptionFrame,
142  IN PEXCEPTION_RECORD ExceptionRecord,
144  IN KPROCESSOR_MODE PreviousMode,
145  IN BOOLEAN SecondChanceException
146 );
147 
148 BOOLEAN
149 NTAPI
150 KdpTrap(
151  IN PKTRAP_FRAME TrapFrame,
152  IN PKEXCEPTION_FRAME ExceptionFrame,
153  IN PEXCEPTION_RECORD ExceptionRecord,
155  IN KPROCESSOR_MODE PreviousMode,
156  IN BOOLEAN SecondChanceException
157 );
158 
159 //
160 // Port Locking
161 //
162 VOID
163 NTAPI
165  VOID
166 );
167 
168 VOID
169 NTAPI
171  VOID
172 );
173 
174 BOOLEAN
175 NTAPI
177  VOID
178 );
179 
180 //
181 // Debugger Enter, Exit, Enable and Disable
182 //
183 BOOLEAN
184 NTAPI
186  IN PKTRAP_FRAME TrapFrame,
187  IN PKEXCEPTION_FRAME ExceptionFrame
188 );
189 
190 VOID
191 NTAPI
194 );
195 
196 NTSTATUS
197 NTAPI
199  IN BOOLEAN NeedLock
200 );
201 
202 NTSTATUS
203 NTAPI
205  IN BOOLEAN NeedLock
206 );
207 
208 //
209 // Debug Event Handlers
210 //
211 NTSTATUS
212 NTAPI
213 KdpPrint(
215  IN ULONG Level,
216  IN LPSTR String,
217  IN USHORT Length,
218  IN KPROCESSOR_MODE PreviousMode,
219  IN PKTRAP_FRAME TrapFrame,
220  IN PKEXCEPTION_FRAME ExceptionFrame,
222 );
223 
224 USHORT
225 NTAPI
226 KdpPrompt(
227  IN LPSTR PromptString,
228  IN USHORT PromptLength,
229  OUT LPSTR ResponseString,
231  IN KPROCESSOR_MODE PreviousMode,
232  IN PKTRAP_FRAME TrapFrame,
233  IN PKEXCEPTION_FRAME ExceptionFrame
234 );
235 
236 VOID
237 NTAPI
238 KdpSymbol(
240  IN PKD_SYMBOLS_INFO SymbolInfo,
241  IN BOOLEAN Unload,
242  IN KPROCESSOR_MODE PreviousMode,
244  IN PKTRAP_FRAME TrapFrame,
245  IN PKEXCEPTION_FRAME ExceptionFrame
246 );
247 
248 VOID
249 NTAPI
251  IN PSTRING NameString,
252  IN PSTRING CommandString,
253  IN KPROCESSOR_MODE PreviousMode,
255  IN PKTRAP_FRAME TrapFrame,
256  IN PKEXCEPTION_FRAME ExceptionFrame
257 );
258 
259 //
260 // State Change Notifications
261 //
262 VOID
263 NTAPI
265  IN PSTRING PathName,
266  IN PKD_SYMBOLS_INFO SymbolInfo,
267  IN BOOLEAN Unload,
268  IN OUT PCONTEXT Context
269 );
270 
271 VOID
272 NTAPI
274  IN PSTRING NameString,
275  IN PSTRING CommandString,
276  IN OUT PCONTEXT Context
277 );
278 
279 BOOLEAN
280 NTAPI
282  IN PEXCEPTION_RECORD ExceptionRecord,
283  IN OUT PCONTEXT Context,
284  IN BOOLEAN SecondChanceException
285 );
286 
287 //
288 // Breakpoint Support
289 //
290 ULONG
291 NTAPI
294 );
295 
296 VOID
297 NTAPI
299  VOID
300 );
301 
302 BOOLEAN
303 NTAPI
305  IN ULONG BpEntry
306 );
307 
308 BOOLEAN
309 NTAPI
311  IN PVOID Base,
312  IN PVOID Limit
313 );
314 
315 VOID
316 NTAPI
318  IN ULONG BpEntry
319 );
320 
321 VOID
322 NTAPI
324  VOID
325 );
326 
327 VOID
328 NTAPI
330  VOID
331 );
332 
333 //
334 // Routine to determine if it is safe to disable the debugger
335 //
336 NTSTATUS
337 NTAPI
339  VOID
340 );
341 
342 //
343 // Safe memory read & write Support
344 //
345 NTSTATUS
346 NTAPI
349  IN PVOID Buffer,
350  IN ULONG TotalSize,
352  IN ULONG Flags,
353  OUT PULONG ActualSize OPTIONAL
354 );
355 
356 //
357 // Internal memory handling routines for KD isolation
358 //
359 VOID
360 NTAPI
363  IN PVOID Source,
365 );
366 
367 VOID
368 NTAPI
372 );
373 
374 //
375 // Low Level Support Routines for the KD API
376 //
377 
378 //
379 // Version
380 //
381 VOID
382 NTAPI
385 );
386 
387 //
388 // Context
389 //
390 VOID
391 NTAPI
394  IN PCONTEXT Context
395 );
396 
397 VOID
398 NTAPI
400  IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange,
401  IN PCONTEXT Context
402 );
403 
404 //
405 // MSR
406 //
407 NTSTATUS
408 NTAPI
410  IN ULONG Msr,
411  OUT PLARGE_INTEGER MsrValue
412 );
413 
414 NTSTATUS
415 NTAPI
417  IN ULONG Msr,
418  IN PLARGE_INTEGER MsrValue
419 );
420 
421 //
422 // Bus
423 //
424 NTSTATUS
425 NTAPI
427  IN ULONG BusDataType,
430  IN ULONG Offset,
431  IN PVOID Buffer,
432  IN ULONG Length,
433  OUT PULONG ActualLength
434 );
435 
436 NTSTATUS
437 NTAPI
439  IN ULONG BusDataType,
442  IN ULONG Offset,
443  IN PVOID Buffer,
444  IN ULONG Length,
445  OUT PULONG ActualLength
446 );
447 
448 //
449 // Control Space
450 //
451 NTSTATUS
452 NTAPI
456  IN PVOID Buffer,
457  IN ULONG Length,
458  OUT PULONG ActualLength
459 );
460 
461 NTSTATUS
462 NTAPI
466  IN PVOID Buffer,
467  IN ULONG Length,
468  OUT PULONG ActualLength
469 );
470 
471 //
472 // I/O Space
473 //
474 NTSTATUS
475 NTAPI
480  IN ULONG64 IoAddress,
481  IN PVOID DataValue,
482  IN ULONG DataSize,
483  OUT PULONG ActualDataSize
484 );
485 
486 NTSTATUS
487 NTAPI
492  IN ULONG64 IoAddress,
493  IN PVOID DataValue,
494  IN ULONG DataSize,
495  OUT PULONG ActualDataSize
496 );
497 
498 //
499 // Low Memory
500 //
501 NTSTATUS
502 NTAPI
504  IN ULONG Flags
505 );
506 
507 //
508 // Internal routine for sending strings directly to the debugger
509 //
510 VOID
511 __cdecl
512 KdpDprintf(
513  IN PCHAR Format,
514  ...
515 );
516 
517 //
518 // Global KD Data
519 //
526 extern ULONG KdDisableCount;
527 extern KD_CONTEXT KdpContext;
528 extern PKDEBUG_ROUTINE KiDebugRoutine;
529 extern PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine;
531 extern BOOLEAN KdPitchDebugger;
533 extern BOOLEAN KdBlockEnable;
538 extern KDPC KdpTimeSlipDpc;
539 extern KTIMER KdpTimeSlipTimer;
541 extern LONG KdpTimeSlipPending;
544 extern BOOLEAN KdpPortLocked;
546 extern BOOLEAN KdpContextSent;
550 extern ULONG Kd_WIN2000_Mask;
551 extern PULONG KdComponentTable[104];
552 extern CHAR KdpMessageBuffer[0x1000], KdpPathBuffer[0x1000];
560 extern ULONG TraceDataBuffer[40];
DWORD *typedef PVOID
Definition: winlogon.h:52
signed char * PCHAR
Definition: retypes.h:7
BOOLEAN KdpContextSent
Definition: kddata.c:69
#define IN
Definition: typedefs.h:38
DBGKD_GET_VERSION64 KdVersionBlock
Definition: kddata.c:371
PVOID ULONG Address
Definition: oprghdlr.h:14
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:359
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:61
BOOLEAN KdpDebuggerStructuresInitialized
Definition: kddata.c:88
#define __cdecl
Definition: accygwin.h:79
BOOLEAN Enable
Definition: acefiex.h:245
BOOLEAN(NTAPI * PKDEBUG_SWITCH_ROUTINE)(IN PEXCEPTION_RECORD ExceptionRecord, IN PCONTEXT Context, IN BOOLEAN SecondChance)
Definition: kd64.h:72
PKDEBUG_ROUTINE KiDebugRoutine
Definition: kdmain.c:504
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
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:63
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:17
LARGE_INTEGER KdTimerStart
Definition: kd64.h:548
_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:51
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
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:88
KD_CONTEXT KdpContext
Definition: kdmain.c:23
ULONG Flags
Definition: kd64.h:50
BOOLEAN KdIgnoreUmExceptions
Definition: kdmain.c:22
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
Definition: ketypes.h:675
_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
LONG NTSTATUS
Definition: precomp.h:26
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:603
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:53
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:289
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:661
_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
unsigned __int64 ULONG64
Definition: imports.h:198
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:744
Definition: ketypes.h:687
#define KD_BREAKPOINT_MAX
Definition: kd64.h:23
Definition: typedefs.h:117
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:499
ULONG NTAPI KdpAddBreakpoint(IN PVOID Address)
Definition: kdbreak.c:20
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
Definition: ketypes.h:675
#define KD_BREAKPOINT_TYPE
Definition: ke.h:117
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:78
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
#define BOOLEAN
Definition: pedump.c:73
#define OUT
Definition: typedefs.h:39
PVOID Address
Definition: kd64.h:52
struct tagContext Context
Definition: acpixf.h:1014
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:1256
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:48
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:675