15(
NTAPI *PHAL_RESET_DISPLAY_PARAMETERS)(
223(*pHalGetErrorCapList)(
277 pHalGetErrorCapList HalGetErrorCapList;
278 pHalInjectError HalInjectError;
282#if !defined(_NTSYSTEM_) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_))
285#define HALDISPATCH HalDispatchTable
288#define HALDISPATCH (&HalDispatchTable)
293#if (NTDDI_VERSION < NTDDI_WIN2K)
294#define HAL_DISPATCH_VERSION 1
295#elif (NTDDI_VERSION < NTDDI_WINXP)
296#define HAL_DISPATCH_VERSION 2
297#elif (NTDDI_VERSION < NTDDI_WIN7)
298#define HAL_DISPATCH_VERSION 3
300#define HAL_DISPATCH_VERSION 4
303#define HalDispatchTableVersion HALDISPATCH->Version
304#define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation
305#define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation
306#define HalQueryBusSlots HALDISPATCH->HalQueryBusSlots
307#define HalReferenceHandlerForBus HALDISPATCH->HalReferenceHandlerForBus
308#define HalReferenceBusHandler HALDISPATCH->HalReferenceBusHandler
309#define HalDereferenceBusHandler HALDISPATCH->HalDereferenceBusHandler
310#define HalInitPnpDriver HALDISPATCH->HalInitPnpDriver
311#define HalInitPowerManagement HALDISPATCH->HalInitPowerManagement
312#define HalGetDmaAdapter HALDISPATCH->HalGetDmaAdapter
313#define HalGetInterruptTranslator HALDISPATCH->HalGetInterruptTranslator
314#define HalStartMirroring HALDISPATCH->HalStartMirroring
315#define HalEndMirroring HALDISPATCH->HalEndMirroring
316#define HalMirrorPhysicalMemory HALDISPATCH->HalMirrorPhysicalMemory
317#define HalEndOfBoot HALDISPATCH->HalEndOfBoot
318#define HalMirrorVerify HALDISPATCH->HalMirrorVerify
319#define HalGetCachedAcpiTable HALDISPATCH->HalGetCachedAcpiTable
320#define HalSetPciErrorHandlerCallback HALDISPATCH->HalSetPciErrorHandlerCallback
322#define HalGetErrorCapList HALDISPATCH->HalGetErrorCapList
323#define HalInjectError HALDISPATCH->HalInjectError
424typedef ERROR_SEVERITY
425(
NTAPI *PDRIVER_EXCPTN_CALLBACK)(
429 _In_ PMCA_EXCEPTION Exception);
433#if defined(_ARM_) || defined(_ARM64_)
438typedef PVOID PCMC_EXCEPTION;
439typedef PVOID PCPE_EXCEPTION;
442(
NTAPI *PDRIVER_EXCPTN_CALLBACK)(
450#if defined(_X86_) || defined(_IA64_)
457(
NTAPI *PDRIVER_EXCPTN_CALLBACK)(
459 _In_ PMCA_EXCEPTION BankLog);
500#define HAL_MCE_INTERRUPTS_BASED ((ULONG)-1)
501#define HAL_MCE_DISABLED ((ULONG)0)
503#define HAL_CMC_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
504#define HAL_CMC_DISABLED HAL_MCE_DISABLED
506#define HAL_CPE_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
507#define HAL_CPE_DISABLED HAL_MCE_DISABLED
509#define HAL_MCA_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
510#define HAL_MCA_DISABLED HAL_MCE_DISABLED
515 _In_ PCMC_EXCEPTION CmcLog);
520 _In_ PCPE_EXCEPTION CmcLog);
537(*HALSENDCROSSPARTITIONIPI)(
542(*HALRESERVECROSSPARTITIONINTERRUPTVECTOR)(
549(*HALFREECROSSPARTITIONINTERRUPTVECTOR)(
553typedef struct _HAL_CROSS_PARTITION_IPI_INTERFACE {
554 HALSENDCROSSPARTITIONIPI HalSendCrossPartitionIpi;
555 HALRESERVECROSSPARTITIONINTERRUPTVECTOR HalReserveCrossPartitionInterruptVector;
556 HALFREECROSSPARTITIONINTERRUPTVECTOR HalFreeCrossPartitionInterruptVector;
557} HAL_CROSS_PARTITION_IPI_INTERFACE;
559#define HAL_CROSS_PARTITION_IPI_INTERFACE_MINIMUM_SIZE \
560 FIELD_OFFSET(HAL_CROSS_PARTITION_IPI_INTERFACE, \
561 HalFreeCrossPartitionInterruptVector)
569#define HAL_PLATFORM_DISABLE_WRITE_COMBINING 0x01L
570#define HAL_PLATFORM_DISABLE_PTCG 0x04L
571#define HAL_PLATFORM_DISABLE_UC_MAIN_MEMORY 0x08L
572#define HAL_PLATFORM_ENABLE_WRITE_COMBINING_MMIO 0x10L
573#define HAL_PLATFORM_ACPI_TABLES_CACHED 0x20L
static const COLUMN_LIST Columns[]
_In_ ULONG _In_ BATTERY_QUERY_INFORMATION_LEVEL _In_ LONG _In_ ULONG _Out_ PULONG ReturnedLength
static const WCHAR Signature[]
_In_ FILTER_INFORMATION_CLASS InformationClass
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
#define _In_reads_bytes_(s)
#define _Inout_updates_bytes_to_(s, c)
#define _Inout_updates_bytes_(s)
struct _BUS_HANDLER * PBUS_HANDLER
enum _INTERFACE_TYPE INTERFACE_TYPE
enum _BUS_DATA_TYPE BUS_DATA_TYPE
const KSDEVICE_DESCRIPTOR DeviceDescriptor
pHalEndOfBoot HalEndOfBoot
pHalGetInterruptTranslator HalGetInterruptTranslator
pHalIoWritePartitionTable HalIoWritePartitionTable
pHalQueryBusSlots HalQueryBusSlots
pHalIoAssignDriveLetters HalIoAssignDriveLetters
pHalStartMirroring HalStartMirroring
pHalSetPciErrorHandlerCallback HalSetPciErrorHandlerCallback
pHalReferenceBusHandler HalReferenceBusHandler
pHalHandlerForBus HalReferenceHandlerForBus
pHalGetDmaAdapter HalGetDmaAdapter
pHalIoReadPartitionTable HalIoReadPartitionTable
pHalExamineMBR HalExamineMBR
pHalReferenceBusHandler HalDereferenceBusHandler
pHalIoSetPartitionInformation HalIoSetPartitionInformation
pHalMirrorVerify HalMirrorVerify
pHalSetSystemInformation HalSetSystemInformation
pHalInitPnpDriver HalInitPnpDriver
pHalGetAcpiTable HalGetCachedAcpiTable
pHalInitPowerManagement HalInitPowerManagement
pHalMirrorPhysicalMemory HalMirrorPhysicalMemory
pHalEndMirroring HalEndMirroring
pHalQuerySystemInformation HalQuerySystemInformation
PDRIVER_CMC_EXCEPTION_CALLBACK ExceptionCallback
PKDEFERRED_ROUTINE DpcCallback
PDRIVER_CPE_EXCEPTION_CALLBACK ExceptionCallback
PKDEFERRED_ROUTINE DpcCallback
PHALIOREADWRITEHANDLER IOHandler
PCALLBACK_OBJECT SetSystemInformation
PCALLBACK_OBJECT BusCheck
ULONG CmcDriverDpcQueueFails
ULONG CpeDriverDpcQueueFails
ULONG CpeInterruptSources
ULONG CmcKernelDeliveryFails
ULONGLONG KernelReserved[4]
ULONG McaKernelDeliveryFails
ULONG McaCorrectedEventsCount
ULONG McaDriverDpcQueueFails
ULONG McaPreviousEventsCount
ULONG CpeKernelDeliveryFails
PHALMCAINTERFACEUNLOCK Unlock
PHALMCAINTERFACELOCK Lock
PHALMCAINTERFACEREADREGISTER ReadRegister
PDRIVER_MCA_EXCEPTION_CALLBACK ExceptionCallback
PKDEFERRED_ROUTINE DpcCallback
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
_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
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name)
enum _KPROFILE_SOURCE KPROFILE_SOURCE
_In_opt_ PUNICODE_STRING DriverClassName
_Out_ PULONG NumberOfMapRegisters
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
_In_ ULONG _In_ ULONG MBRTypeIdentifier
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
NTSTATUS(NTAPI * pHalQuerySystemInformation)(_In_ HAL_QUERY_INFORMATION_CLASS InformationClass, _In_ ULONG BufferSize, _Inout_updates_bytes_to_(BufferSize, *ReturnedLength) PVOID Buffer, _Out_ PULONG ReturnedLength)
enum _HAL_DISPLAY_BIOS_INFORMATION * PHAL_DISPLAY_BIOS_INFORMATION
struct _HAL_PROFILE_SOURCE_INFORMATION_EX HAL_PROFILE_SOURCE_INFORMATION_EX
struct _HAL_PROCESSOR_SPEED_INFO HAL_PROCESSOR_SPEED_INFORMATION
enum _HAL_QUERY_INFORMATION_CLASS * PHAL_QUERY_INFORMATION_CLASS
NTSTATUS(FASTCALL * pHalIoSetPartitionInformation)(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG SectorSize, _In_ ULONG PartitionNumber, _In_ ULONG PartitionType)
struct _PM_DISPATCH_TABLE * PPM_DISPATCH_TABLE
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)
struct _HAL_ERROR_INFO * PHAL_ERROR_INFO
struct _CPE_DRIVER_INFO CPE_DRIVER_INFO
struct _HAL_BUS_INFORMATION * PHAL_BUS_INFORMATION
VOID(NTAPI * PDRIVER_CMC_EXCEPTION_CALLBACK)(_In_ PVOID Context, _In_ PCMC_EXCEPTION CmcLog)
VOID(NTAPI * PHALMCAINTERFACELOCK)(VOID)
NTSTATUS(NTAPI * pHalGetInterruptTranslator)(_In_ INTERFACE_TYPE ParentInterfaceType, _In_ ULONG ParentBusNumber, _In_ INTERFACE_TYPE BridgeInterfaceType, _In_ USHORT Size, _In_ USHORT Version, _Out_ PTRANSLATOR_INTERFACE Translator, _Out_ PULONG BridgeBusNumber)
struct _HAL_CALLBACKS HAL_CALLBACKS
struct _HAL_ERROR_INFO HAL_ERROR_INFO
struct _CMC_DRIVER_INFO * PCMC_DRIVER_INFO
struct _HAL_CALLBACKS * PHAL_CALLBACKS
struct _HAL_PROFILE_SOURCE_INFORMATION HAL_PROFILE_SOURCE_INFORMATION
HAL_APIC_DESTINATION_MODE
@ ApicDestinationModeLogicalFlat
@ ApicDestinationModePhysical
@ ApicDestinationModeLogicalClustered
@ ApicDestinationModeUnknown
enum HAL_APIC_DESTINATION_MODE * PHAL_APIC_DESTINATION_MODE
struct _MAP_REGISTER_ENTRY * PMAP_REGISTER_ENTRY
struct _HAL_PROFILE_SOURCE_INFORMATION * PHAL_PROFILE_SOURCE_INFORMATION
NTSTATUS(NTAPI * pHalQueryBusSlots)(_In_ PBUS_HANDLER BusHandler, _In_ ULONG BufferSize, _Out_ PULONG SlotNumbers, _Out_ PULONG ReturnedLength)
BOOLEAN(NTAPI * pHalTranslateBusAddress)(_In_ INTERFACE_TYPE InterfaceType, _In_ ULONG BusNumber, _In_ PHYSICAL_ADDRESS BusAddress, _Inout_ PULONG AddressSpace, _Out_ PPHYSICAL_ADDRESS TranslatedAddress)
PDRIVER_EXCPTN_CALLBACK PDRIVER_MCA_EXCEPTION_CALLBACK
struct _PM_DISPATCH_TABLE PM_DISPATCH_TABLE
PVOID(NTAPI * pHalGetAcpiTable)(_In_ ULONG Signature, _In_opt_ PCSTR OemId, _In_opt_ PCSTR OemTableId)
NTSTATUS(FASTCALL * pHalIoWritePartitionTable)(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG SectorSize, _In_ ULONG SectorsPerTrack, _In_ ULONG NumberOfHeads, _In_ struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer)
NTSTATUS(NTAPI * PHALIOREADWRITEHANDLER)(_In_ BOOLEAN fRead, _In_ ULONG dwAddr, _In_ ULONG dwSize, _Inout_ PULONG pdwData)
struct _HAL_AMLI_BAD_IO_ADDRESS_LIST HAL_AMLI_BAD_IO_ADDRESS_LIST
enum _HAL_SET_INFORMATION_CLASS * PHAL_SET_INFORMATION_CLASS
PBUS_HANDLER(FASTCALL * pHalHandlerForBus)(_In_ INTERFACE_TYPE InterfaceType, _In_ ULONG BusNumber)
VOID(NTAPI * pHalSetPciErrorHandlerCallback)(_In_ PCI_ERROR_HANDLER_CALLBACK Callback)
NTSTATUS(NTAPI * pHalMirrorVerify)(_In_ PHYSICAL_ADDRESS PhysicalAddress, _In_ LARGE_INTEGER NumberOfBytes)
VOID(NTAPI * PDRIVER_CPE_EXCEPTION_CALLBACK)(_In_ PVOID Context, _In_ PCPE_EXCEPTION CmcLog)
$if(_WDMDDK_) typedef NTSTATUS NTAPI PROCESSOR_HALT_ROUTINE(_Inout_opt_ PVOID Context)
NTSTATUS(FASTCALL * pHalIoReadPartitionTable)(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG SectorSize, _In_ BOOLEAN ReturnRecognizedPartitions, _Out_ struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer)
struct _HAL_PROFILE_SOURCE_INTERVAL HAL_PROFILE_SOURCE_INTERVAL
struct _MCA_DRIVER_INFO * PMCA_DRIVER_INFO
BOOLEAN(NTAPI * pHalResetDisplay)(VOID)
struct _DMA_ADAPTER *NTAPI * pHalGetDmaAdapter(_In_ PVOID Context, _In_ struct _DEVICE_DESCRIPTION *DeviceDescriptor, _Out_ PULONG NumberOfMapRegisters)
VOID(FASTCALL * pHalExamineMBR)(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG SectorSize, _In_ ULONG MBRTypeIdentifier, _Out_ PVOID *Buffer)
UCHAR(NTAPI * pHalVectorToIDTEntry)(ULONG Vector)
NTSTATUS(NTAPI * pHalMirrorPhysicalMemory)(_In_ PHYSICAL_ADDRESS PhysicalAddress, _In_ LARGE_INTEGER NumberOfBytes)
NTSTATUS(NTAPI * pHalStartMirroring)(VOID)
NTSTATUS(NTAPI * PHALMCAINTERFACEREADREGISTER)(_In_ UCHAR BankNumber, _Inout_ PVOID Exception)
enum _HAL_SET_INFORMATION_CLASS HAL_SET_INFORMATION_CLASS
struct _HAL_MCA_INTERFACE HAL_MCA_INTERFACE
struct _HAL_PROFILE_SOURCE_INFORMATION_EX * PHAL_PROFILE_SOURCE_INFORMATION_EX
struct _HAL_PROFILE_SOURCE_INTERVAL * PHAL_PROFILE_SOURCE_INTERVAL
NTSTATUS(NTAPI * pHalSetSystemInformation)(_In_ HAL_SET_INFORMATION_CLASS InformationClass, _In_ ULONG BufferSize, _In_ PVOID Buffer)
NTSTATUS(NTAPI * pHalEndMirroring)(_In_ ULONG PassNumber)
struct _CPE_DRIVER_INFO * PCPE_DRIVER_INFO
struct _MAP_REGISTER_ENTRY MAP_REGISTER_ENTRY
enum _HAL_QUERY_INFORMATION_CLASS HAL_QUERY_INFORMATION_CLASS
HAL_DISPATCH HalDispatchTable
struct _HAL_PLATFORM_INFORMATION * PHAL_PLATFORM_INFORMATION
VOID(FASTCALL * pHalIoAssignDriveLetters)(_In_ struct _LOADER_PARAMETER_BLOCK *LoaderBlock, _In_ PSTRING NtDeviceName, _Out_ PUCHAR NtSystemPath, _Out_ PSTRING NtSystemPathString)
$endif(_WDMDDK_) $if(_NTDDK_) typedef BOOLEAN(NTAPI *PHAL_RESET_DISPLAY_PARAMETERS)(_In_ ULONG Columns
struct _HAL_BUS_INFORMATION HAL_BUS_INFORMATION
VOID(NTAPI * pHalEndOfBoot)(VOID)
_HAL_SET_INFORMATION_CLASS
@ HalProfileSourceTimerHandler
@ HalProfileSourceInterval
@ HalProfileDpgoSourceInterruptHandler
@ HalGenerateCmcInterrupt
@ HalProfileSourceInterruptHandler
struct _HAL_PROCESSOR_FEATURE HAL_PROCESSOR_FEATURE
struct _CMC_DRIVER_INFO CMC_DRIVER_INFO
NTSTATUS(NTAPI * pHalInitPnpDriver)(VOID)
struct _HAL_POWER_INFORMATION HAL_POWER_INFORMATION
_HAL_DISPLAY_BIOS_INFORMATION
VOID(NTAPI * pHalHaltSystem)(VOID)
struct _HAL_PROCESSOR_SPEED_INFO * PHAL_PROCESSOR_SPEED_INFORMATION
VOID(FASTCALL * pHalReferenceBusHandler)(_In_ PBUS_HANDLER BusHandler)
_HAL_QUERY_INFORMATION_CLASS
@ HalProcessorSpeedInformation
@ HalProfileSourceInformation
@ HalProcessorBrandString
@ HalMapRegisterInformation
@ HalDisplayBiosInformation
@ HalFrequencyInformation
@ HalPartitionIpiInterface
@ HalInformationClassUnused1
@ HalHypervisorInformation
@ HalAcpiAuditInformation
@ HalNumaTopologyInterface
@ HalQueryMaxHotPlugMemoryAddress
@ HalPlatformTimerInformation
@ HalQueryProfileSourceList
@ HalQueryAMLIIllegalIOPortAddresses
@ HalFrameBufferCachingInformation
@ HalProcessorFeatureInformation
@ HalInstalledBusInformation
struct HAL_DISPATCH * PHAL_DISPATCH
struct _MCA_DRIVER_INFO MCA_DRIVER_INFO
enum _HAL_DISPLAY_BIOS_INFORMATION HAL_DISPLAY_BIOS_INFORMATION
struct _HAL_POWER_INFORMATION * PHAL_POWER_INFORMATION
struct _HAL_AMLI_BAD_IO_ADDRESS_LIST * PHAL_AMLI_BAD_IO_ADDRESS_LIST
PROCESSOR_HALT_ROUTINE * PPROCESSOR_HALT_ROUTINE
struct _HAL_PLATFORM_INFORMATION HAL_PLATFORM_INFORMATION
VOID(NTAPI * PHALMCAINTERFACEUNLOCK)(VOID)
VOID(NTAPI * PCI_ERROR_HANDLER_CALLBACK)(VOID)
struct _HAL_PROFILE_SOURCE_LIST HAL_PROFILE_SOURCE_LIST
struct _HAL_PROFILE_SOURCE_LIST * PHAL_PROFILE_SOURCE_LIST
NTSTATUS(NTAPI * pHalInitPowerManagement)(_In_ PPM_DISPATCH_TABLE PmDriverDispatchTable, _Out_ PPM_DISPATCH_TABLE *PmHalDispatchTable)
BOOLEAN(NTAPI * pHalFindBusAddressTranslation)(_In_ PHYSICAL_ADDRESS BusAddress, _Inout_ PULONG AddressSpace, _Out_ PPHYSICAL_ADDRESS TranslatedAddress, _Inout_ PULONG_PTR Context, _In_ BOOLEAN NextBus)
_In_ ULONG _In_ ULONG _In_ ULONG NumberOfHeads
_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
_In_ ULONG _In_ BOOLEAN ReturnRecognizedPartitions
_In_ ULONG _In_ ULONG SectorsPerTrack
_In_ ULONG _In_ BOOLEAN _Out_ struct _DRIVE_LAYOUT_INFORMATION ** PartitionBuffer
_In_ ULONG _In_ ULONG PartitionNumber
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
KDEFERRED_ROUTINE * PKDEFERRED_ROUTINE