mirror of
https://github.com/reactos/reactos.git
synced 2026-07-02 05:44:26 +08:00
[SDK] Improve KDNET type headers
Split shared data types into kdnetshareddata.h CORE-20385
This commit is contained in:
committed by
Justin Miller
parent
9e09b5c5b9
commit
77d883a64d
@@ -3,66 +3,96 @@
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Provide the types needed to communicate with Kernel Debugger extensions
|
||||
* COPYRIGHT: Copyright 2022 Hervé Poussineau <hpoussin@reactos.org>
|
||||
* Copyright 2026 Justin Miller <justin.miller@reactos.org>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *KD_GET_RX_PACKET)(
|
||||
_In_ PVOID Adapter,
|
||||
_Out_ PULONG Handle,
|
||||
_Out_ PVOID *Packet,
|
||||
_Out_ PULONG Length);
|
||||
#include <reactos/kdnetshareddata.h>
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *KD_RELEASE_RX_PACKET)(
|
||||
_In_ PVOID Adapter,
|
||||
_In_ ULONG Handle);
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *KD_GET_TX_PACKET)(
|
||||
_In_ PVOID Adapter,
|
||||
_Out_ PULONG Handle);
|
||||
struct _DEBUG_DEVICE_DESCRIPTOR;
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *KD_SEND_TX_PACKET)(
|
||||
_In_ PVOID Adapter,
|
||||
_In_ ULONG Handle,
|
||||
_In_ ULONG Length);
|
||||
typedef NTSTATUS (NTAPI *KD_INITIALIZE_CONTROLLER)(_In_ PKDNET_SHARED_DATA KdNet);
|
||||
typedef VOID (NTAPI *KD_SHUTDOWN_CONTROLLER)(_In_ PVOID Adapter);
|
||||
typedef VOID (NTAPI *KD_SET_HIBERNATE_RANGE)(VOID);
|
||||
typedef 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);
|
||||
typedef NTSTATUS (NTAPI *KD_GET_RX_PACKET)(_In_ PVOID Adapter, _Out_ PULONG Handle,
|
||||
_Out_ PVOID *Packet, _Out_ PULONG Length);
|
||||
typedef VOID (NTAPI *KD_RELEASE_RX_PACKET)(_In_ PVOID Adapter, _In_ ULONG Handle);
|
||||
typedef NTSTATUS (NTAPI *KD_GET_TX_PACKET)(_In_ PVOID Adapter, _Out_ PULONG Handle);
|
||||
typedef NTSTATUS (NTAPI *KD_SEND_TX_PACKET)(_In_ PVOID Adapter, _In_ ULONG Handle, _In_ ULONG Length);
|
||||
typedef PVOID (NTAPI *KD_GET_PACKET_ADDRESS)(_In_ PVOID Adapter, _In_ ULONG Handle);
|
||||
typedef ULONG (NTAPI *KD_GET_PACKET_LENGTH)(_In_ PVOID Adapter, _In_ ULONG Handle);
|
||||
typedef ULONG (NTAPI *KD_GET_HARDWARE_CONTEXT_SIZE)(_In_ struct _DEBUG_DEVICE_DESCRIPTOR *Device);
|
||||
typedef NTSTATUS (NTAPI *KD_READ_SERIAL_BYTE)(_In_ PVOID Adapter, _Out_ PUCHAR Byte);
|
||||
typedef NTSTATUS (NTAPI *KD_WRITE_SERIAL_BYTE)(_In_ PVOID Adapter, _In_ UCHAR Byte);
|
||||
typedef NTSTATUS (NTAPI *DEBUG_SERIAL_OUTPUT_INIT)(_In_opt_ struct _DEBUG_DEVICE_DESCRIPTOR *pDevice,
|
||||
_Out_opt_ PPHYSICAL_ADDRESS PAddress);
|
||||
typedef VOID (NTAPI *DEBUG_SERIAL_OUTPUT_BYTE)(_In_ UCHAR byte);
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *KD_GET_PACKET_ADDRESS)(
|
||||
_In_ PVOID Adapter,
|
||||
_In_ ULONG Handle);
|
||||
|
||||
typedef ULONG
|
||||
(NTAPI *KD_GET_PACKET_LENGTH)(
|
||||
_In_ PVOID Adapter,
|
||||
_In_ ULONG Handle);
|
||||
|
||||
#define KDNET_EXT_EXPORTS 13
|
||||
#define KDNET_EXT_EXPORTS 15
|
||||
|
||||
typedef struct _KDNET_EXTENSIBILITY_EXPORTS
|
||||
{
|
||||
ULONG FunctionCount;
|
||||
PVOID KdInitializeController;
|
||||
PVOID KdShutdownController;
|
||||
PVOID KdSetHibernateRange;
|
||||
KD_GET_RX_PACKET KdGetRxPacket;
|
||||
KD_RELEASE_RX_PACKET KdReleaseRxPacket;
|
||||
KD_GET_TX_PACKET KdGetTxPacket;
|
||||
KD_SEND_TX_PACKET KdSendTxPacket;
|
||||
KD_GET_PACKET_ADDRESS KdGetPacketAddress;
|
||||
KD_GET_PACKET_LENGTH KdGetPacketLength;
|
||||
PVOID KdGetHardwareContextSize;
|
||||
PVOID KdDeviceControl;
|
||||
PVOID KdReadSerialByte;
|
||||
PVOID KdWriteSerialByte;
|
||||
PVOID DebugSerialOutputInit;
|
||||
PVOID DebugSerialOutputByte;
|
||||
KD_INITIALIZE_CONTROLLER KdInitializeController;
|
||||
KD_SHUTDOWN_CONTROLLER KdShutdownController;
|
||||
KD_SET_HIBERNATE_RANGE KdSetHibernateRange;
|
||||
KD_GET_RX_PACKET KdGetRxPacket;
|
||||
KD_RELEASE_RX_PACKET KdReleaseRxPacket;
|
||||
KD_GET_TX_PACKET KdGetTxPacket;
|
||||
KD_SEND_TX_PACKET KdSendTxPacket;
|
||||
KD_GET_PACKET_ADDRESS KdGetPacketAddress;
|
||||
KD_GET_PACKET_LENGTH KdGetPacketLength;
|
||||
KD_GET_HARDWARE_CONTEXT_SIZE KdGetHardwareContextSize;
|
||||
KD_DEVICE_CONTROL KdDeviceControl;
|
||||
KD_READ_SERIAL_BYTE KdReadSerialByte;
|
||||
KD_WRITE_SERIAL_BYTE KdWriteSerialByte;
|
||||
DEBUG_SERIAL_OUTPUT_INIT DebugSerialOutputInit;
|
||||
DEBUG_SERIAL_OUTPUT_BYTE DebugSerialOutputByte;
|
||||
} KDNET_EXTENSIBILITY_EXPORTS, *PKDNET_EXTENSIBILITY_EXPORTS;
|
||||
|
||||
#define KDNET_EXT_IMPORTS 30
|
||||
typedef PHYSICAL_ADDRESS (NTAPI *KDNET_GET_PHYSICAL_ADDRESS)(_In_ PVOID Va);
|
||||
typedef VOID (NTAPI *KDNET_STALL_EXECUTION_PROCESSOR)(ULONG Microseconds);
|
||||
typedef UCHAR (NTAPI *KDNET_READ_REGISTER_UCHAR)(_In_ PUCHAR Register);
|
||||
typedef USHORT (NTAPI *KDNET_READ_REGISTER_USHORT)(_In_ PUSHORT Register);
|
||||
typedef ULONG (NTAPI *KDNET_READ_REGISTER_ULONG)(_In_ PULONG Register);
|
||||
typedef ULONG64 (NTAPI *KDNET_READ_REGISTER_ULONG64)(_In_ ULONG64 *Register);
|
||||
typedef VOID (NTAPI *KDNET_WRITE_REGISTER_UCHAR)(_In_ PUCHAR Register, _In_ UCHAR Value);
|
||||
typedef VOID (NTAPI *KDNET_WRITE_REGISTER_USHORT)(_In_ PUSHORT Register, _In_ USHORT Value);
|
||||
typedef VOID (NTAPI *KDNET_WRITE_REGISTER_ULONG)(_In_ PULONG Register, _In_ ULONG Value);
|
||||
typedef VOID (NTAPI *KDNET_WRITE_REGISTER_ULONG64)(_In_ ULONG64 *Register, _In_ ULONG64 Value);
|
||||
typedef UCHAR (NTAPI *KDNET_READ_PORT_UCHAR)(_In_ PUCHAR Port);
|
||||
typedef USHORT (NTAPI *KDNET_READ_PORT_USHORT)(_In_ PUSHORT Port);
|
||||
typedef ULONG (NTAPI *KDNET_READ_PORT_ULONG)(_In_ PULONG Port);
|
||||
typedef ULONG64 (NTAPI *KDNET_READ_PORT_ULONG64)(_In_ ULONG64 *Port);
|
||||
typedef VOID (NTAPI *KDNET_WRITE_PORT_UCHAR)(_In_ PUCHAR Port, _In_ UCHAR Value);
|
||||
typedef VOID (NTAPI *KDNET_WRITE_PORT_USHORT)(_In_ PUSHORT Port, _In_ USHORT Value);
|
||||
typedef VOID (NTAPI *KDNET_WRITE_PORT_ULONG)(_In_ PULONG Port, _In_ ULONG Value);
|
||||
typedef VOID (NTAPI *KDNET_WRITE_PORT_ULONG64)(_In_ PULONG Port, _In_ ULONG64 Value);
|
||||
typedef 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);
|
||||
typedef 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);
|
||||
typedef VOID (NTAPI *KDNET_SET_HIBER_RANGE)(_In_opt_ PVOID MemoryMap, _In_ ULONG Flags,
|
||||
_In_ PVOID Address, _In_ ULONG_PTR Length, _In_ ULONG Tag);
|
||||
typedef VOID (NTAPI *KDNET_BUGCHECK_EX)(_In_ ULONG BugCheckCode,
|
||||
_In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2,
|
||||
_In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4);
|
||||
typedef PVOID (NTAPI *KDNET_MAP_PHYSICAL_MEMORY_64)(_In_ PHYSICAL_ADDRESS PhysicalAddress,
|
||||
_In_ ULONG NumberPages, _In_ BOOLEAN FlushCurrentTLB);
|
||||
typedef VOID (NTAPI *KDNET_UNMAP_VIRTUAL_ADDRESS)(_In_ PVOID VirtualAddress,
|
||||
_In_ ULONG NumberPages, _In_ BOOLEAN FlushCurrentTLB);
|
||||
typedef ULONG64 (NTAPI *KDNET_READ_CYCLE_COUNTER)(_Out_opt_ ULONG64 *Frequency);
|
||||
typedef VOID (NTAPI *KDNET_DBGPRINT)(_In_ PCHAR pFmt, ...);
|
||||
|
||||
#define KDNET_EXT_IMPORTS 33
|
||||
|
||||
typedef struct _KDNET_EXTENSIBILITY_IMPORTS
|
||||
{
|
||||
@@ -102,18 +132,11 @@ typedef struct _KDNET_EXTENSIBILITY_IMPORTS
|
||||
PULONG KdNetHardwareID;
|
||||
} KDNET_EXTENSIBILITY_IMPORTS, *PKDNET_EXTENSIBILITY_IMPORTS;
|
||||
|
||||
extern PKDNET_EXTENSIBILITY_EXPORTS KdNetExtensibilityExports;
|
||||
|
||||
#define KdGetRxPacket KdNetExtensibilityExports->KdGetRxPacket
|
||||
#define KdReleaseRxPacket KdNetExtensibilityExports->KdReleaseRxPacket
|
||||
#define KdGetTxPacket KdNetExtensibilityExports->KdGetTxPacket
|
||||
#define KdSendTxPacket KdNetExtensibilityExports->KdSendTxPacket
|
||||
#define KdGetPacketAddress KdNetExtensibilityExports->KdGetPacketAddress
|
||||
#define KdGetPacketLength KdNetExtensibilityExports->KdGetPacketLength
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdInitializeLibrary(
|
||||
NTSTATUS NTAPI KdInitializeLibrary(
|
||||
_In_ PKDNET_EXTENSIBILITY_IMPORTS ImportTable,
|
||||
_In_opt_ PCHAR LoaderOptions,
|
||||
_Inout_ PDEBUG_DEVICE_DESCRIPTOR Device);
|
||||
_Inout_ struct _DEBUG_DEVICE_DESCRIPTOR *Device);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
41
sdk/include/reactos/kdnetshareddata.h
Normal file
41
sdk/include/reactos/kdnetshareddata.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* PROJECT: ReactOS Kernel Debugger over Network extension driver headers
|
||||
* LICENSE: MIT (https://spdx.org/licenses/MIT)
|
||||
* PURPOSE: Provide the types needed to share the underlying transport state with Kernel Debugger extensions
|
||||
* COPYRIGHT: Copyright 2022 Hervé Poussineau <hpoussin@reactos.org>
|
||||
* Copyright 2026 Justin Miller <justin.miller@reactos.org>
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#if defined(_AMD64_)
|
||||
#define MAX_HARDWARE_CONTEXT_SIZE (160*1024*1024)
|
||||
#else
|
||||
#define MAX_HARDWARE_CONTEXT_SIZE (16*1024*1024)
|
||||
#endif
|
||||
|
||||
#define TRANSMIT_ASYNC 0x80000000
|
||||
#define TRANSMIT_HANDLE 0x40000000
|
||||
#define TRANSMIT_LAST 0x20000000
|
||||
#define HANDLE_FLAGS (TRANSMIT_ASYNC | TRANSMIT_HANDLE | TRANSMIT_LAST)
|
||||
|
||||
#define KDX_EXTENDED_INITIAL_CONNECT 0x1
|
||||
#define KDX_FORCE_DHCP_OFF 0x2
|
||||
#define KDX_VALID_FLAGS (KDX_EXTENDED_INITIAL_CONNECT | KDX_FORCE_DHCP_OFF)
|
||||
|
||||
#define MAC_ADDRESS_SIZE 6
|
||||
#define UNDI_DEFAULT_HARDWARE_CONTEXT_SIZE ((512 + 10) * 1024)
|
||||
|
||||
typedef struct _KDNET_SHARED_DATA
|
||||
{
|
||||
PVOID Hardware;
|
||||
struct _DEBUG_DEVICE_DESCRIPTOR *Device;
|
||||
PUCHAR TargetMacAddress;
|
||||
ULONG LinkSpeed;
|
||||
ULONG LinkDuplex;
|
||||
PUCHAR LinkState;
|
||||
ULONG SerialBaudRate;
|
||||
ULONG Flags;
|
||||
UCHAR RestartKdnet;
|
||||
UCHAR Reserved[3];
|
||||
} KDNET_SHARED_DATA, *PKDNET_SHARED_DATA;
|
||||
Reference in New Issue
Block a user