1 /******************************************************************************
2 * Kernel Debugger Types *
3 ******************************************************************************/
5 typedef struct _DEBUG_DEVICE_ADDRESS
{
8 #if (NTDDI_VERSION >= NTDDI_WIN10_RS3)
12 #if (NTDDI_VERSION >= NTDDI_WIN10_RS3)
19 PUCHAR TranslatedAddress
;
21 } DEBUG_DEVICE_ADDRESS
, *PDEBUG_DEVICE_ADDRESS
;
23 typedef struct _DEBUG_MEMORY_REQUIREMENTS
{
24 PHYSICAL_ADDRESS Start
;
25 PHYSICAL_ADDRESS MaxEnd
;
30 } DEBUG_MEMORY_REQUIREMENTS
, *PDEBUG_MEMORY_REQUIREMENTS
;
32 #if (NTDDI_VERSION >= NTDDI_WIN8)
38 KdNameSpaceMax
, /* Maximum namespace enumerator */
39 } KD_NAMESPACE_ENUM
, *PKD_NAMESPACE_ENUM
;
42 #if (NTDDI_VERSION >= NTDDI_WIN10)
43 typedef struct _DEBUG_TRANSPORT_DATA
{
45 BOOLEAN UseSerialFraming
;
46 #if (NTDDI_VERSION >= NTDDI_WIN10_RS5)
47 BOOLEAN ValidUSBCoreId
;
50 } DEBUG_TRANSPORT_DATA
, *PDEBUG_TRANSPORT_DATA
;
53 #define MAXIMUM_DEBUG_BARS 6
55 #if (NTDDI_VERSION >= NTDDI_WIN10)
56 #define DBG_DEVICE_FLAG_HAL_SCRATCH_ALLOCATED 0x01
57 #define DBG_DEVICE_FLAG_BARS_MAPPED 0x02
58 #define DBG_DEVICE_FLAG_SCRATCH_ALLOCATED 0x04
60 #if (NTDDI_VERSION >= NTDDI_WIN10_RS2)
61 #define DBG_DEVICE_FLAG_UNCACHED_MEMORY 0x08
63 #if (NTDDI_VERSION >= NTDDI_WIN10_RS3)
64 #define DBG_DEVICE_FLAG_SYNTHETIC 0x10
67 typedef struct _DEBUG_DEVICE_DESCRIPTOR
{
69 #if (NTDDI_VERSION >= NTDDI_VISTA) && (NTDDI_VERSION < NTDDI_WIN8)
73 #if (NTDDI_VERSION >= NTDDI_WIN8)
81 #if (NTDDI_VERSION >= NTDDI_WIN8)
82 #if (NTDDI_VERSION >= NTDDI_WIN10)
86 #if (NTDDI_VERSION >= NTDDI_WIN10)
88 UCHAR DbgHalScratchAllocated
: 1;
89 UCHAR DbgBarsMapped
: 1;
90 UCHAR DbgScratchAllocated
: 1;
96 #if (NTDDI_VERSION >= NTDDI_VISTA)
99 DEBUG_DEVICE_ADDRESS BaseAddress
[MAXIMUM_DEBUG_BARS
];
100 DEBUG_MEMORY_REQUIREMENTS Memory
;
101 #if (NTDDI_VERSION >= NTDDI_WIN10_19H1)
102 ULONG Dbg2TableIndex
;
104 #if (NTDDI_VERSION >= NTDDI_WIN8)
109 KD_NAMESPACE_ENUM NameSpace
;
110 PWCHAR NameSpacePath
;
111 ULONG NameSpacePathLength
;
113 #if (NTDDI_VERSION >= NTDDI_WIN10)
115 DEBUG_TRANSPORT_DATA TransportData
;
117 } DEBUG_DEVICE_DESCRIPTOR
, *PDEBUG_DEVICE_DESCRIPTOR
;
120 (NTAPI
*pKdSetupPciDeviceForDebugging
)(
121 _In_opt_ PVOID LoaderBlock
,
122 _Inout_ PDEBUG_DEVICE_DESCRIPTOR PciDevice
);
125 (NTAPI
*pKdReleasePciDeviceForDebugging
)(
126 _Inout_ PDEBUG_DEVICE_DESCRIPTOR PciDevice
);
129 (NTAPI
*pKdGetAcpiTablePhase0
)(
130 _In_
struct _LOADER_PARAMETER_BLOCK
*LoaderBlock
,
131 _In_ ULONG Signature
);
134 (NTAPI
*pKdCheckPowerButton
)(VOID
);
136 #if (NTDDI_VERSION >= NTDDI_VISTA)
138 (NTAPI
*pKdMapPhysicalMemory64
)(
139 _In_ PHYSICAL_ADDRESS PhysicalAddress
,
140 _In_ ULONG NumberPages
,
141 _In_ BOOLEAN FlushCurrentTLB
);
144 (NTAPI
*pKdUnmapVirtualAddress
)(
145 _In_ PVOID VirtualAddress
,
146 _In_ ULONG NumberPages
,
147 _In_ BOOLEAN FlushCurrentTLB
);
150 (NTAPI
*pKdMapPhysicalMemory64
)(
151 _In_ PHYSICAL_ADDRESS PhysicalAddress
,
152 _In_ ULONG NumberPages
);
155 (NTAPI
*pKdUnmapVirtualAddress
)(
156 _In_ PVOID VirtualAddress
,
157 _In_ ULONG NumberPages
);
161 (NTAPI
*pKdGetPciDataByOffset
)(
162 _In_ ULONG BusNumber
,
163 _In_ ULONG SlotNumber
,
164 _Out_writes_bytes_(Length
) PVOID Buffer
,
169 (NTAPI
*pKdSetPciDataByOffset
)(
170 _In_ ULONG BusNumber
,
171 _In_ ULONG SlotNumber
,
172 _In_reads_bytes_(Length
) PVOID Buffer
,