#pragma once
#include <cportlib/cportlib.h>
BOOLEAN
NTAPI
KdPortInitializeEx(
PCPPORT PortInformation,
ULONG ComPortNumber
);
BOOLEAN
NTAPI
KdPortGetByteEx(
PCPPORT PortInformation,
PUCHAR ByteReceived);
VOID
NTAPI
KdPortPutByteEx(
PCPPORT PortInformation,
UCHAR ByteToSend
);
#ifdef _NTOSKRNL_
typedef enum _KDP_DEBUG_SERVICE
{
DumpNonPagedPool = 0x1e,
ManualBugCheck = 0x30,
DumpNonPagedPoolStats = 0x2e,
DumpNewNonPagedPool = 0x20,
DumpNewNonPagedPoolStats = 0x12,
DumpAllThreads = 0x21,
DumpUserThreads = 0x22,
KdSpare1 = 0x23,
KdSpare2 = 0x17,
KdSpare3 = 0x24,
EnterDebugger = 0x25,
ThatsWhatSheSaid = 69
} KDP_DEBUG_SERVICE;
#endif
#if DBG && defined(_M_IX86) && !defined(_WINKD_)
#define ID_Win32PreServiceHook 'WSH0'
#define ID_Win32PostServiceHook 'WSH1'
typedef void (NTAPI *PKDBG_PRESERVICEHOOK)(ULONG, PULONG_PTR);
typedef ULONG_PTR (NTAPI *PKDBG_POSTSERVICEHOOK)(ULONG, ULONG_PTR);
extern PKDBG_PRESERVICEHOOK KeWin32PreServiceHook;
extern PKDBG_POSTSERVICEHOOK KeWin32PostServiceHook;
#endif