diff --git a/sdk/include/xdk/kdtypes.h b/sdk/include/xdk/kdtypes.h index 1c7efbcc405..fbe32dde0b2 100644 --- a/sdk/include/xdk/kdtypes.h +++ b/sdk/include/xdk/kdtypes.h @@ -5,7 +5,17 @@ $if (_NTDDK_) typedef struct _DEBUG_DEVICE_ADDRESS { UCHAR Type; BOOLEAN Valid; - UCHAR Reserved[2]; +#if (NTDDI_VERSION >= NTDDI_WIN10_RS3) + union { +#endif + UCHAR Reserved[2]; +#if (NTDDI_VERSION >= NTDDI_WIN10_RS3) + struct { + UCHAR BitWidth; + UCHAR AccessSize; + }; + }; +#endif PUCHAR TranslatedAddress; ULONG Length; } DEBUG_DEVICE_ADDRESS, *PDEBUG_DEVICE_ADDRESS; @@ -19,19 +29,91 @@ typedef struct _DEBUG_MEMORY_REQUIREMENTS { BOOLEAN Aligned; } DEBUG_MEMORY_REQUIREMENTS, *PDEBUG_MEMORY_REQUIREMENTS; +#if (NTDDI_VERSION >= NTDDI_WIN8) +typedef enum { + KdNameSpacePCI, + KdNameSpaceACPI, + KdNameSpaceAny, + KdNameSpaceNone, + KdNameSpaceMax, /* Maximum namespace enumerator */ +} KD_NAMESPACE_ENUM, *PKD_NAMESPACE_ENUM; +#endif + +#if (NTDDI_VERSION >= NTDDI_WIN10) +typedef struct _DEBUG_TRANSPORT_DATA { + ULONG HwContextSize; + BOOLEAN UseSerialFraming; +#if (NTDDI_VERSION >= NTDDI_WIN10_RS5) + BOOLEAN ValidUSBCoreId; + UCHAR USBCoreId; +#endif +} DEBUG_TRANSPORT_DATA, *PDEBUG_TRANSPORT_DATA; +#endif + +#define MAXIMUM_DEBUG_BARS 6 + +#if (NTDDI_VERSION >= NTDDI_WIN10) +#define DBG_DEVICE_FLAG_HAL_SCRATCH_ALLOCATED 0x01 +#define DBG_DEVICE_FLAG_BARS_MAPPED 0x02 +#define DBG_DEVICE_FLAG_SCRATCH_ALLOCATED 0x04 +#endif +#if (NTDDI_VERSION >= NTDDI_WIN10_RS2) +#define DBG_DEVICE_FLAG_UNCACHED_MEMORY 0x08 +#endif +#if (NTDDI_VERSION >= NTDDI_WIN10_RS3) +#define DBG_DEVICE_FLAG_SYNTHETIC 0x10 +#endif + typedef struct _DEBUG_DEVICE_DESCRIPTOR { ULONG Bus; - ULONG Slot; +#if (NTDDI_VERSION >= NTDDI_VISTA) && (NTDDI_VERSION < NTDDI_WIN8) USHORT Segment; +#endif + ULONG Slot; +#if (NTDDI_VERSION >= NTDDI_WIN8) + USHORT Segment; +#endif USHORT VendorID; USHORT DeviceID; UCHAR BaseClass; UCHAR SubClass; UCHAR ProgIf; +#if (NTDDI_VERSION >= NTDDI_WIN8) +#if (NTDDI_VERSION >= NTDDI_WIN10) + union { +#endif + UCHAR Flags; +#if (NTDDI_VERSION >= NTDDI_WIN10) + struct { + UCHAR DbgHalScratchAllocated : 1; + UCHAR DbgBarsMapped : 1; + UCHAR DbgScratchAllocated : 1; + }; + }; +#endif +#endif BOOLEAN Initialized; +#if (NTDDI_VERSION >= NTDDI_VISTA) BOOLEAN Configured; - DEBUG_DEVICE_ADDRESS BaseAddress[6]; +#endif + DEBUG_DEVICE_ADDRESS BaseAddress[MAXIMUM_DEBUG_BARS]; DEBUG_MEMORY_REQUIREMENTS Memory; +#if (NTDDI_VERSION >= NTDDI_WIN10_19H1) + ULONG Dbg2TableIndex; +#endif +#if (NTDDI_VERSION >= NTDDI_WIN8) + USHORT PortType; + USHORT PortSubtype; + PVOID OemData; + ULONG OemDataLength; + KD_NAMESPACE_ENUM NameSpace; + PWCHAR NameSpacePath; + ULONG NameSpacePathLength; +#endif +#if (NTDDI_VERSION >= NTDDI_WIN10) + ULONG TransportType; + DEBUG_TRANSPORT_DATA TransportData; +#endif } DEBUG_DEVICE_DESCRIPTOR, *PDEBUG_DEVICE_DESCRIPTOR; typedef NTSTATUS