161#if (NTDDI_VERSION < NTDDI_WINXP)
162#define HAL_PRIVATE_DISPATCH_VERSION 1
163#elif (NTDDI_VERSION < NTDDI_LONGHORN)
164#define HAL_PRIVATE_DISPATCH_VERSION 2
165#elif (NTDDI_VERSION >= NTDDI_LONGHORN)
166#define HAL_PRIVATE_DISPATCH_VERSION 5
192#if (NTDDI_VERSION >= NTDDI_LONGHORN)
203#define HAL_SUPPORTED_RANGE_VERSION 1
231#define HAL_BUS_HANDLER_VERSION 1
263#define HAL_PCI_CHIP_HACK_BROKEN_ACPI_TIMER 0x01
264#define HAL_PCI_CHIP_HACK_DISABLE_HIBERNATE 0x02
265#define HAL_PCI_CHIP_HACK_DISABLE_ACPI_IRQ_ROUTING 0x04
266#define HAL_PCI_CHIP_HACK_USB_SMI_DISABLE 0x08
271#if !defined(_NTSYSTEM_) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_))
273#define HALPRIVATEDISPATCH ((PHAL_PRIVATE_DISPATCH)&HalPrivateDispatchTable)
276#define HALPRIVATEDISPATCH (&HalPrivateDispatchTable)
287#define HAL_IRQ_TRANSLATOR_VERSION 0x0
BIOS_MEMORY_MAP MemoryMap[32]
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T ContextSize
enum _INTERFACE_TYPE INTERFACE_TYPE
static PTIME_FIELDS TimeFields
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
struct _HAL_PRIVATE_DISPATCH HAL_PRIVATE_DISPATCH
enum _FIRMWARE_REENTRY * PFIRMWARE_REENTRY
ULONG(NTAPI * PGETSETBUSDATA)(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _In_ ULONG SlotNumber, _In_ PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
BOOLEAN(NTAPI * PTRANSLATEBUSADDRESS)(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _In_ PHYSICAL_ADDRESS BusAddress, _Inout_ PULONG AddressSpace, _Out_ PPHYSICAL_ADDRESS TranslatedAddress)
struct _BUS_HANDLER BUS_HANDLER
struct _SUPPORTED_RANGES SUPPORTED_RANGES
enum _FIRMWARE_REENTRY FIRMWARE_REENTRY
struct _SUPPORTED_RANGES * PSUPPORTED_RANGES
VOID(NTAPI * pHalLocateHiberRanges)(_In_ PVOID MemoryMap)
struct _X86_BIOS_REGISTERS * PX86_BIOS_REGISTERS
NTSTATUS(NTAPI * PINSTALL_BUS_HANDLER)(_In_ PBUS_HANDLER Bus)
NTSYSAPI HAL_PRIVATE_DISPATCH HalPrivateDispatchTable
struct _SUPPORTED_RANGE * PSUPPORTED_RANGE
VOID(NTAPI * pHalSetWakeAlarm)(_In_ ULONGLONG AlartTime, _In_ PTIME_FIELDS TimeFields)
NTHALAPI PUCHAR KdComPortInUse
NTSTATUS(NTAPI * PASSIGNSLOTRESOURCES)(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _In_ PUNICODE_STRING RegistryPath, _In_opt_ PUNICODE_STRING DriverClassName, _In_ PDRIVER_OBJECT DriverObject, _In_opt_ PDEVICE_OBJECT DeviceObject, _In_ ULONG SlotNumber, _Inout_ PCM_RESOURCE_LIST *AllocatedResources)
ULONG(NTAPI * PGETINTERRUPTVECTOR)(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _In_ ULONG BusInterruptLevel, _In_ ULONG BusInterruptVector, _Out_ PKIRQL Irql, _Out_ PKAFFINITY Affinity)
NTSTATUS(NTAPI * pHalAllocateMapRegisters)(_In_ PADAPTER_OBJECT AdapterObject, _In_ ULONG Unknown, _In_ ULONG Unknown2, PMAP_REGISTER_ENTRY Registers)
struct _HAL_PRIVATE_DISPATCH * PHAL_PRIVATE_DISPATCH
PBUS_HANDLER(FASTCALL * pHalHandlerForConfigSpace)(_In_ BUS_DATA_TYPE ConfigSpace, _In_ ULONG BusNumber)
NTSTATUS(NTAPI * PADJUSTRESOURCELIST)(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _Inout_ PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList)
NTSTATUS(NTAPI * pHalRegisterBusHandler)(_In_ INTERFACE_TYPE InterfaceType, _In_ BUS_DATA_TYPE ConfigSpace, _In_ ULONG BusNumber, _In_ INTERFACE_TYPE ParentInterfaceType, _In_ ULONG ParentBusNumber, _In_ ULONG ContextSize, _In_ PINSTALL_BUS_HANDLER InstallCallback, _Out_ PBUS_HANDLER *BusHandler)
@ HalInteractiveModeRoutine
struct _SUPPORTED_RANGE SUPPORTED_RANGE
VOID(NTAPI * pHalSetWakeEnable)(_In_ BOOLEAN Enable)
struct _X86_BIOS_REGISTERS X86_BIOS_REGISTERS
struct _BUS_HANDLER * PBUS_HANDLER
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
enum _BUS_DATA_TYPE BUS_DATA_TYPE
PGETINTERRUPTVECTOR GetInterruptVector
PGETSETBUSDATA GetBusData
PSUPPORTED_RANGES BusAddresses
PTRANSLATEBUSADDRESS TranslateBusAddress
PASSIGNSLOTRESOURCES AssignSlotResources
BUS_DATA_TYPE ConfigurationType
ULONG DeviceControlExtensionSize
struct _BUS_HANDLER * ParentHandler
PDEVICE_OBJECT DeviceObject
PGETSETBUSDATA SetBusData
INTERFACE_TYPE InterfaceType
PADJUSTRESOURCELIST AdjustResourceList
pHalAssignSlotResources HalPciAssignSlotResources
PVOID HalGetInterruptVectorOverride
pHalLocateHiberRanges HalLocateHiberRanges
pHalSetWakeEnable HalSetWakeEnable
pKdCheckPowerButton KdCheckPowerButton
pHalFindBusAddressTranslation HalFindBusAddressTranslation
pKdMapPhysicalMemory64 KdMapPhysicalMemory64
pHalAllocateMapRegisters HalAllocateMapRegisters
pKdSetupPciDeviceForDebugging KdSetupPciDeviceForDebugging
pKdGetAcpiTablePhase0 KdGetAcpiTablePhase0
pHalRegisterBusHandler HalRegisterBusHandler
pKdGetPciDataByOffset KdGetPciDataByOffset
pKdReleasePciDeviceForDebugging KdReleasePciDeviceforDebugging
pHalResetDisplay HalResetDisplay
pHalHandlerForConfigSpace HalHandlerForConfigSpace
pHalHandlerForBus HalHandlerForBus
pHalTranslateBusAddress HalPciTranslateBusAddress
PVOID HalGetVectorInputOverride
pHalHaltSystem HalHaltSystem
pHalVectorToIDTEntry HalVectorToIDTEntry
pKdUnmapVirtualAddress KdUnmapVirtualAddress
pKdSetPciDataByOffset KdSetPciDataByOffset
pHalSetWakeAlarm HalSetWakeAlarm
SUPPORTED_RANGE PrefetchMemory
struct _SUPPORTED_RANGE * Next
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
_Reserved_ PVOID Reserved
_In_opt_ PUNICODE_STRING DriverClassName
_In_ ULONG _In_ ULONG BusInterruptLevel
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
_In_ ULONG _In_ ULONG _In_ ULONG BusInterruptVector
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
NTSTATUS(NTAPI * pHalAssignSlotResources)(_In_ PUNICODE_STRING RegistryPath, _In_opt_ PUNICODE_STRING DriverClassName, _In_ PDRIVER_OBJECT DriverObject, _In_ PDEVICE_OBJECT DeviceObject, _In_ INTERFACE_TYPE BusType, _In_ ULONG BusNumber, _In_ ULONG SlotNumber, _Inout_ PCM_RESOURCE_LIST *AllocatedResources)
BOOLEAN(NTAPI * pHalTranslateBusAddress)(_In_ INTERFACE_TYPE InterfaceType, _In_ ULONG BusNumber, _In_ PHYSICAL_ADDRESS BusAddress, _Inout_ PULONG AddressSpace, _Out_ PPHYSICAL_ADDRESS TranslatedAddress)
PBUS_HANDLER(FASTCALL * pHalHandlerForBus)(_In_ INTERFACE_TYPE InterfaceType, _In_ ULONG BusNumber)
BOOLEAN(NTAPI * pHalResetDisplay)(VOID)
UCHAR(NTAPI * pHalVectorToIDTEntry)(ULONG Vector)
VOID(NTAPI * pHalHaltSystem)(VOID)
BOOLEAN(NTAPI * pHalFindBusAddressTranslation)(_In_ PHYSICAL_ADDRESS BusAddress, _Inout_ PULONG AddressSpace, _Out_ PPHYSICAL_ADDRESS TranslatedAddress, _Inout_ PULONG_PTR Context, _In_ BOOLEAN NextBus)
_In_ ULONG _In_ PHYSICAL_ADDRESS BusAddress
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
PVOID(NTAPI * pKdMapPhysicalMemory64)(_In_ PHYSICAL_ADDRESS PhysicalAddress, _In_ ULONG NumberPages, _In_ BOOLEAN FlushCurrentTLB)
PVOID(NTAPI * pKdGetAcpiTablePhase0)(_In_ struct _LOADER_PARAMETER_BLOCK *LoaderBlock, _In_ ULONG Signature)
NTSTATUS(NTAPI * pKdReleasePciDeviceForDebugging)(_Inout_ PDEBUG_DEVICE_DESCRIPTOR PciDevice)
VOID(NTAPI * pKdUnmapVirtualAddress)(_In_ PVOID VirtualAddress, _In_ ULONG NumberPages, _In_ BOOLEAN FlushCurrentTLB)
NTSTATUS(NTAPI * pKdSetupPciDeviceForDebugging)(_In_opt_ PVOID LoaderBlock, _Inout_ PDEBUG_DEVICE_DESCRIPTOR PciDevice)
ULONG(NTAPI * pKdSetPciDataByOffset)(_In_ ULONG BusNumber, _In_ ULONG SlotNumber, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
ULONG(NTAPI * pKdGetPciDataByOffset)(_In_ ULONG BusNumber, _In_ ULONG SlotNumber, _Out_writes_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
VOID(NTAPI * pKdCheckPowerButton)(VOID)