1 #pragma once 2 3 #include <cportlib/cportlib.h> 4 5 // 6 // Kernel Debugger Port Definition 7 // 8 9 BOOLEAN 10 NTAPI 11 KdPortInitializeEx( 12 PCPPORT PortInformation, 13 ULONG ComPortNumber 14 ); 15 16 BOOLEAN 17 NTAPI 18 KdPortGetByteEx( 19 PCPPORT PortInformation, 20 PUCHAR ByteReceived); 21 22 VOID 23 NTAPI 24 KdPortPutByteEx( 25 PCPPORT PortInformation, 26 UCHAR ByteToSend 27 ); 28 29 #ifdef _NTOSKRNL_ 30 31 /* KD GLOBALS ****************************************************************/ 32 33 /* KD Internal Debug Services */ 34 typedef enum _KDP_DEBUG_SERVICE 35 { 36 DumpNonPagedPool = 0x1e, /* a */ 37 ManualBugCheck = 0x30, /* b */ 38 DumpNonPagedPoolStats = 0x2e, /* c */ 39 DumpNewNonPagedPool = 0x20, /* d */ 40 DumpNewNonPagedPoolStats = 0x12, /* e */ 41 DumpAllThreads = 0x21, /* f */ 42 DumpUserThreads = 0x22, /* g */ 43 KdSpare1 = 0x23, /* h */ 44 KdSpare2 = 0x17, /* i */ 45 KdSpare3 = 0x24, /* j */ 46 EnterDebugger = 0x25, /* k */ 47 ThatsWhatSheSaid = 69 /* FIGURE IT OUT */ 48 } KDP_DEBUG_SERVICE; 49 50 #endif // _NTOSKRNL_ 51 52 #if DBG && defined(_M_IX86) && !defined(_WINKD_) // See ke/i386/traphdlr.c 53 #define ID_Win32PreServiceHook 'WSH0' 54 #define ID_Win32PostServiceHook 'WSH1' 55 typedef void (NTAPI *PKDBG_PRESERVICEHOOK)(ULONG, PULONG_PTR); 56 typedef ULONG_PTR (NTAPI *PKDBG_POSTSERVICEHOOK)(ULONG, ULONG_PTR); 57 extern PKDBG_PRESERVICEHOOK KeWin32PreServiceHook; 58 extern PKDBG_POSTSERVICEHOOK KeWin32PostServiceHook; 59 #endif 60