ReactOS 0.4.17-dev-357-ga8f14ff
kdnetextensibility.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Kernel Debugger over Network extension driver headers
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: Provide the types needed to communicate with Kernel Debugger extensions
5 * COPYRIGHT: Copyright 2022 Hervé Poussineau <hpoussin@reactos.org>
6 * Copyright 2026 Justin Miller <justin.miller@reactos.org>
7 */
8
9#pragma once
10
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
18
22typedef NTSTATUS (NTAPI *KD_DEVICE_CONTROL)(_In_ PVOID Adapter, _In_ ULONG RequestCode,
38
39#define KDNET_EXT_EXPORTS 15
40
42{
60
85typedef VOID (NTAPI *KDNET_BUGCHECK_EX)(_In_ ULONG BugCheckCode,
86 _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2,
87 _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4);
89 _In_ ULONG NumberPages, _In_ BOOLEAN FlushCurrentTLB);
91 _In_ ULONG NumberPages, _In_ BOOLEAN FlushCurrentTLB);
93typedef VOID (NTAPI *KDNET_DBGPRINT)(_In_ PCHAR pFmt, ...);
94
95#define KDNET_EXT_IMPORTS 33
96
98{
127 PVOID VmbusInitialize; /* optional */
134
137 _In_opt_ PCHAR LoaderOptions,
139
140#ifdef __cplusplus
141}
142#endif
#define VOID
Definition: acefi.h:82
unsigned char BOOLEAN
Definition: actypes.h:127
LONG NTSTATUS
Definition: precomp.h:26
BIOS_MEMORY_MAP MemoryMap[32]
Definition: loader.c:11
Definition: bufpool.h:45
#define NTSTATUS
Definition: precomp.h:19
unsigned char Byte
Definition: zlib.h:37
#define byte(x, n)
Definition: tomcrypt.h:118
#define PHYSICAL_ADDRESS
Definition: env_spec_w32.h:53
FxDevice * pDevice
ULONG Handle
Definition: gdb_input.c:15
CPPORT Port[4]
Definition: headless.c:38
PVOID(NTAPI * KDNET_MAP_PHYSICAL_MEMORY_64)(_In_ PHYSICAL_ADDRESS PhysicalAddress, _In_ ULONG NumberPages, _In_ BOOLEAN FlushCurrentTLB)
USHORT(NTAPI * KDNET_READ_REGISTER_USHORT)(_In_ PUSHORT Register)
VOID(NTAPI * KDNET_WRITE_PORT_UCHAR)(_In_ PUCHAR Port, _In_ UCHAR Value)
PHYSICAL_ADDRESS(NTAPI * KDNET_GET_PHYSICAL_ADDRESS)(_In_ PVOID Va)
UCHAR(NTAPI * KDNET_READ_PORT_UCHAR)(_In_ PUCHAR Port)
ULONG(NTAPI * KD_GET_PACKET_LENGTH)(_In_ PVOID Adapter, _In_ ULONG Handle)
UCHAR(NTAPI * KDNET_READ_REGISTER_UCHAR)(_In_ PUCHAR Register)
NTSTATUS(NTAPI * KD_DEVICE_CONTROL)(_In_ PVOID Adapter, _In_ ULONG RequestCode, _In_reads_bytes_(InputBufferLength) PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_writes_bytes_(OutputBufferLength) PVOID OutputBuffer, _In_ ULONG OutputBufferLength)
NTSTATUS(NTAPI * KD_GET_RX_PACKET)(_In_ PVOID Adapter, _Out_ PULONG Handle, _Out_ PVOID *Packet, _Out_ PULONG Length)
VOID(NTAPI * KDNET_WRITE_REGISTER_UCHAR)(_In_ PUCHAR Register, _In_ UCHAR Value)
NTSTATUS(NTAPI * DEBUG_SERIAL_OUTPUT_INIT)(_In_opt_ struct _DEBUG_DEVICE_DESCRIPTOR *pDevice, _Out_opt_ PPHYSICAL_ADDRESS PAddress)
NTSTATUS(NTAPI * KD_INITIALIZE_CONTROLLER)(_In_ PKDNET_SHARED_DATA KdNet)
ULONG64(NTAPI * KDNET_READ_REGISTER_ULONG64)(_In_ ULONG64 *Register)
VOID(NTAPI * KDNET_SET_HIBER_RANGE)(_In_opt_ PVOID MemoryMap, _In_ ULONG Flags, _In_ PVOID Address, _In_ ULONG_PTR Length, _In_ ULONG Tag)
ULONG64(NTAPI * KDNET_READ_CYCLE_COUNTER)(_Out_opt_ ULONG64 *Frequency)
VOID(NTAPI * KDNET_STALL_EXECUTION_PROCESSOR)(ULONG Microseconds)
NTSTATUS NTAPI KdInitializeLibrary(_In_ PKDNET_EXTENSIBILITY_IMPORTS ImportTable, _In_opt_ PCHAR LoaderOptions, _Inout_ struct _DEBUG_DEVICE_DESCRIPTOR *Device)
VOID(NTAPI * KDNET_WRITE_PORT_ULONG)(_In_ PULONG Port, _In_ ULONG Value)
VOID(NTAPI * KDNET_BUGCHECK_EX)(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
struct _KDNET_EXTENSIBILITY_IMPORTS * PKDNET_EXTENSIBILITY_IMPORTS
VOID(NTAPI * KD_RELEASE_RX_PACKET)(_In_ PVOID Adapter, _In_ ULONG Handle)
VOID(NTAPI * KDNET_UNMAP_VIRTUAL_ADDRESS)(_In_ PVOID VirtualAddress, _In_ ULONG NumberPages, _In_ BOOLEAN FlushCurrentTLB)
VOID(NTAPI * KDNET_WRITE_PORT_ULONG64)(_In_ PULONG Port, _In_ ULONG64 Value)
VOID(NTAPI * KD_SHUTDOWN_CONTROLLER)(_In_ PVOID Adapter)
NTSTATUS(NTAPI * KD_WRITE_SERIAL_BYTE)(_In_ PVOID Adapter, _In_ UCHAR Byte)
NTSTATUS(NTAPI * KD_GET_TX_PACKET)(_In_ PVOID Adapter, _Out_ PULONG Handle)
ULONG(NTAPI * KDNET_GET_PCI_DATA_BY_OFFSET)(_In_ ULONG BusNumber, _In_ ULONG SlotNumber, _Out_writes_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
NTSTATUS(NTAPI * KD_SEND_TX_PACKET)(_In_ PVOID Adapter, _In_ ULONG Handle, _In_ ULONG Length)
PVOID(NTAPI * KD_GET_PACKET_ADDRESS)(_In_ PVOID Adapter, _In_ ULONG Handle)
struct _KDNET_EXTENSIBILITY_IMPORTS KDNET_EXTENSIBILITY_IMPORTS
ULONG(NTAPI * KDNET_SET_PCI_DATA_BY_OFFSET)(_In_ ULONG BusNumber, _In_ ULONG SlotNumber, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
NTSTATUS(NTAPI * KD_READ_SERIAL_BYTE)(_In_ PVOID Adapter, _Out_ PUCHAR Byte)
VOID(NTAPI * KDNET_WRITE_REGISTER_USHORT)(_In_ PUSHORT Register, _In_ USHORT Value)
VOID(NTAPI * KDNET_WRITE_REGISTER_ULONG)(_In_ PULONG Register, _In_ ULONG Value)
VOID(NTAPI * KDNET_WRITE_REGISTER_ULONG64)(_In_ ULONG64 *Register, _In_ ULONG64 Value)
VOID(NTAPI * KDNET_WRITE_PORT_USHORT)(_In_ PUSHORT Port, _In_ USHORT Value)
ULONG(NTAPI * KDNET_READ_REGISTER_ULONG)(_In_ PULONG Register)
VOID(NTAPI * KDNET_DBGPRINT)(_In_ PCHAR pFmt,...)
VOID(NTAPI * DEBUG_SERIAL_OUTPUT_BYTE)(_In_ UCHAR byte)
ULONG64(NTAPI * KDNET_READ_PORT_ULONG64)(_In_ ULONG64 *Port)
VOID(NTAPI * KD_SET_HIBERNATE_RANGE)(VOID)
ULONG(NTAPI * KDNET_READ_PORT_ULONG)(_In_ PULONG Port)
ULONG(NTAPI * KD_GET_HARDWARE_CONTEXT_SIZE)(_In_ struct _DEBUG_DEVICE_DESCRIPTOR *Device)
struct _KDNET_EXTENSIBILITY_EXPORTS KDNET_EXTENSIBILITY_EXPORTS
struct _KDNET_EXTENSIBILITY_EXPORTS * PKDNET_EXTENSIBILITY_EXPORTS
USHORT(NTAPI * KDNET_READ_PORT_USHORT)(_In_ PUSHORT Port)
unsigned __int64 ULONG64
Definition: imports.h:198
_In_ NDIS_HANDLE _In_ PNDIS_PACKET Packet
Definition: ndis.h:1549
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
#define _Out_opt_
Definition: no_sal2.h:214
#define _Inout_
Definition: no_sal2.h:162
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define _In_opt_
Definition: no_sal2.h:212
#define _Out_writes_bytes_(s)
Definition: no_sal2.h:178
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
_In_ ULONG BusNumber
Definition: pciidex.h:65
unsigned short USHORT
Definition: pedump.c:61
static WCHAR Address[46]
Definition: ping.c:68
DEBUG_SERIAL_OUTPUT_INIT DebugSerialOutputInit
KD_RELEASE_RX_PACKET KdReleaseRxPacket
DEBUG_SERIAL_OUTPUT_BYTE DebugSerialOutputByte
KD_READ_SERIAL_BYTE KdReadSerialByte
KD_GET_HARDWARE_CONTEXT_SIZE KdGetHardwareContextSize
KD_WRITE_SERIAL_BYTE KdWriteSerialByte
KD_GET_PACKET_LENGTH KdGetPacketLength
KD_SET_HIBERNATE_RANGE KdSetHibernateRange
KD_SHUTDOWN_CONTROLLER KdShutdownController
KD_INITIALIZE_CONTROLLER KdInitializeController
KD_GET_PACKET_ADDRESS KdGetPacketAddress
KDNET_SET_HIBER_RANGE SetHiberRange
KDNET_WRITE_PORT_UCHAR WritePortUChar
KDNET_WRITE_REGISTER_USHORT WriteRegisterUShort
KDNET_MAP_PHYSICAL_MEMORY_64 MapPhysicalMemory64
KDNET_UNMAP_VIRTUAL_ADDRESS UnmapVirtualAddress
KDNET_READ_CYCLE_COUNTER ReadCycleCounter
KDNET_READ_PORT_USHORT ReadPortUShort
KDNET_READ_REGISTER_ULONG ReadRegisterULong
KDNET_READ_PORT_ULONG64 ReadPortULong64
KDNET_WRITE_PORT_ULONG WritePortULong
KDNET_WRITE_PORT_ULONG64 WritePortULong64
KDNET_WRITE_REGISTER_ULONG WriteRegisterULong
KDNET_STALL_EXECUTION_PROCESSOR StallExecutionProcessor
KDNET_READ_REGISTER_UCHAR ReadRegisterUChar
KDNET_WRITE_PORT_USHORT WritePortUShort
KDNET_READ_PORT_ULONG ReadPortULong
KDNET_WRITE_REGISTER_UCHAR WriteRegisterUChar
KDNET_SET_PCI_DATA_BY_OFFSET SetPciDataByOffset
KDNET_READ_REGISTER_ULONG64 ReadRegisterULong64
KDNET_READ_REGISTER_USHORT ReadRegisterUShort
PKDNET_EXTENSIBILITY_EXPORTS Exports
KDNET_WRITE_REGISTER_ULONG64 WriteRegisterULong64
KDNET_GET_PCI_DATA_BY_OFFSET GetPciDataByOffset
KDNET_READ_PORT_UCHAR ReadPortUChar
KDNET_GET_PHYSICAL_ADDRESS GetPhysicalAddress
static LARGE_INTEGER Frequency
Definition: clock.c:41
uint32_t * PULONG
Definition: typedefs.h:59
unsigned char UCHAR
Definition: typedefs.h:53
#define NTAPI
Definition: typedefs.h:36
void * PVOID
Definition: typedefs.h:50
uint16_t * PUSHORT
Definition: typedefs.h:56
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint16_t * PWCHAR
Definition: typedefs.h:56
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
char * PCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ WDFDEVICE Device
Definition: wdfchildlist.h:474
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
Definition: wdfdevice.h:4071
_Must_inspect_result_ _In_ WDFDMATRANSACTION _In_ PFN_WDF_PROGRAM_DMA _In_ WDF_DMA_DIRECTION _In_ PMDL _In_ PVOID VirtualAddress
_In_ WDFREQUEST _In_ size_t OutputBufferLength
Definition: wdfio.h:320
_In_ WDFREQUEST _In_ size_t _In_ size_t InputBufferLength
Definition: wdfio.h:322
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR OutputBuffer
Definition: wdfiotarget.h:863
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR InputBuffer
Definition: wdfiotarget.h:953
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
Definition: wdfresource.h:68
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
Definition: iotypes.h:1098