5 (
NTAPI *PHAL_RESET_DISPLAY_PARAMETERS)(
213 (*pHalGetErrorCapList)(
267 pHalGetErrorCapList HalGetErrorCapList;
268 pHalInjectError HalInjectError;
274 #define HALDISPATCH (&HalDispatchTable) 278 #define HALDISPATCH HalDispatchTable 281 #define HAL_DISPATCH_VERSION 3 282 #define HalDispatchTableVersion HALDISPATCH->Version 283 #define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation 284 #define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation 285 #define HalQueryBusSlots HALDISPATCH->HalQueryBusSlots 286 #define HalReferenceHandlerForBus HALDISPATCH->HalReferenceHandlerForBus 287 #define HalReferenceBusHandler HALDISPATCH->HalReferenceBusHandler 288 #define HalDereferenceBusHandler HALDISPATCH->HalDereferenceBusHandler 289 #define HalInitPnpDriver HALDISPATCH->HalInitPnpDriver 290 #define HalInitPowerManagement HALDISPATCH->HalInitPowerManagement 291 #define HalGetDmaAdapter HALDISPATCH->HalGetDmaAdapter 292 #define HalGetInterruptTranslator HALDISPATCH->HalGetInterruptTranslator 293 #define HalStartMirroring HALDISPATCH->HalStartMirroring 294 #define HalEndMirroring HALDISPATCH->HalEndMirroring 295 #define HalMirrorPhysicalMemory HALDISPATCH->HalMirrorPhysicalMemory 296 #define HalEndOfBoot HALDISPATCH->HalEndOfBoot 297 #define HalMirrorVerify HALDISPATCH->HalMirrorVerify 298 #define HalGetCachedAcpiTable HALDISPATCH->HalGetCachedAcpiTable 299 #define HalSetPciErrorHandlerCallback HALDISPATCH->HalSetPciErrorHandlerCallback 301 #define HalGetErrorCapList HALDISPATCH->HalGetErrorCapList 302 #define HalInjectError HALDISPATCH->HalInjectError 374 #if defined(_X86_) || defined(_IA64_) || defined(_AMD64_) 383 (
NTAPI *PHALMCAINTERFACEREADREGISTER)(
387 typedef struct _HAL_MCA_INTERFACE {
388 PHALMCAINTERFACELOCK
Lock;
389 PHALMCAINTERFACEUNLOCK
Unlock;
390 PHALMCAINTERFACEREADREGISTER ReadRegister;
394 ApicDestinationModePhysical = 1,
395 ApicDestinationModeLogicalFlat,
396 ApicDestinationModeLogicalClustered,
397 ApicDestinationModeUnknown
398 } HAL_APIC_DESTINATION_MODE, *PHAL_APIC_DESTINATION_MODE;
405 typedef ERROR_SEVERITY
406 (
NTAPI *PDRIVER_EXCPTN_CALLBACK)(
410 _In_ PMCA_EXCEPTION Exception);
414 #if defined(_X86_) || defined(_IA64_) 421 (
NTAPI *PDRIVER_EXCPTN_CALLBACK)(
423 _In_ PMCA_EXCEPTION BankLog);
426 typedef PDRIVER_EXCPTN_CALLBACK PDRIVER_MCA_EXCEPTION_CALLBACK;
428 typedef struct _MCA_DRIVER_INFO {
429 PDRIVER_MCA_EXCEPTION_CALLBACK ExceptionCallback;
432 } MCA_DRIVER_INFO, *PMCA_DRIVER_INFO;
434 typedef struct _HAL_ERROR_INFO {
438 ULONG McaPreviousEventsCount;
439 ULONG McaCorrectedEventsCount;
440 ULONG McaKernelDeliveryFails;
441 ULONG McaDriverDpcQueueFails;
444 ULONG CmcPollingInterval;
445 ULONG CmcInterruptsCount;
446 ULONG CmcKernelDeliveryFails;
447 ULONG CmcDriverDpcQueueFails;
448 ULONG CmcGetStateFails;
449 ULONG CmcClearStateFails;
453 ULONG CpePollingInterval;
454 ULONG CpeInterruptsCount;
455 ULONG CpeKernelDeliveryFails;
456 ULONG CpeDriverDpcQueueFails;
457 ULONG CpeGetStateFails;
458 ULONG CpeClearStateFails;
459 ULONG CpeInterruptSources;
462 } HAL_ERROR_INFO, *PHAL_ERROR_INFO;
464 #define HAL_MCE_INTERRUPTS_BASED ((ULONG)-1) 465 #define HAL_MCE_DISABLED ((ULONG)0) 467 #define HAL_CMC_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED 468 #define HAL_CMC_DISABLED HAL_MCE_DISABLED 470 #define HAL_CPE_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED 471 #define HAL_CPE_DISABLED HAL_MCE_DISABLED 473 #define HAL_MCA_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED 474 #define HAL_MCA_DISABLED HAL_MCE_DISABLED 477 (
NTAPI *PDRIVER_CMC_EXCEPTION_CALLBACK)(
479 _In_ PCMC_EXCEPTION CmcLog);
482 (
NTAPI *PDRIVER_CPE_EXCEPTION_CALLBACK)(
484 _In_ PCPE_EXCEPTION CmcLog);
486 typedef struct _CMC_DRIVER_INFO {
487 PDRIVER_CMC_EXCEPTION_CALLBACK ExceptionCallback;
490 } CMC_DRIVER_INFO, *PCMC_DRIVER_INFO;
492 typedef struct _CPE_DRIVER_INFO {
493 PDRIVER_CPE_EXCEPTION_CALLBACK ExceptionCallback;
496 } CPE_DRIVER_INFO, *PCPE_DRIVER_INFO;
498 #endif // defined(_X86_) || defined(_IA64_) || defined(_AMD64_) 503 (*HALSENDCROSSPARTITIONIPI)(
508 (*HALRESERVECROSSPARTITIONINTERRUPTVECTOR)(
515 (*HALFREECROSSPARTITIONINTERRUPTVECTOR)(
519 typedef struct _HAL_CROSS_PARTITION_IPI_INTERFACE {
520 HALSENDCROSSPARTITIONIPI HalSendCrossPartitionIpi;
521 HALRESERVECROSSPARTITIONINTERRUPTVECTOR HalReserveCrossPartitionInterruptVector;
522 HALFREECROSSPARTITIONINTERRUPTVECTOR HalFreeCrossPartitionInterruptVector;
523 } HAL_CROSS_PARTITION_IPI_INTERFACE;
525 #define HAL_CROSS_PARTITION_IPI_INTERFACE_MINIMUM_SIZE \ 526 FIELD_OFFSET(HAL_CROSS_PARTITION_IPI_INTERFACE, \ 527 HalFreeCrossPartitionInterruptVector) 535 #define HAL_PLATFORM_DISABLE_WRITE_COMBINING 0x01L 536 #define HAL_PLATFORM_DISABLE_PTCG 0x04L 537 #define HAL_PLATFORM_DISABLE_UC_MAIN_MEMORY 0x08L 538 #define HAL_PLATFORM_ENABLE_WRITE_COMBINING_MMIO 0x10L 539 #define HAL_PLATFORM_ACPI_TABLES_CACHED 0x20L _In_ WDFIORESREQLIST _In_ ULONG SlotNumber
pHalQuerySystemInformation HalQuerySystemInformation
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
BOOLEAN(NTAPI * pHalResetDisplay)(VOID)
#define __CREATE_NTOS_DATA_IMPORT_ALIAS(_Name)
NTSTATUS(NTAPI * pHalInitPowerManagement)(_In_ PPM_DISPATCH_TABLE PmDriverDispatchTable, _Out_ PPM_DISPATCH_TABLE *PmHalDispatchTable)
_In_ ULONG _In_ PHYSICAL_ADDRESS BusAddress
enum _HAL_SET_INFORMATION_CLASS * PHAL_SET_INFORMATION_CLASS
enum _INTERFACE_TYPE INTERFACE_TYPE
_Out_ PULONG NumberOfMapRegisters
#define _In_reads_bytes_(s)
pHalIoWritePartitionTable HalIoWritePartitionTable
NTSTATUS(NTAPI * pHalMirrorPhysicalMemory)(_In_ PHYSICAL_ADDRESS PhysicalAddress, _In_ LARGE_INTEGER NumberOfBytes)
IN BOOLEAN OUT PSTR Buffer
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
enum _BUS_DATA_TYPE BUS_DATA_TYPE
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
struct _HAL_PLATFORM_INFORMATION * PHAL_PLATFORM_INFORMATION
struct _HAL_POWER_INFORMATION * PHAL_POWER_INFORMATION
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
NTSTATUS(FASTCALL * pHalIoWritePartitionTable)(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG SectorSize, _In_ ULONG SectorsPerTrack, _In_ ULONG NumberOfHeads, _In_ struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer)
struct _HAL_AMLI_BAD_IO_ADDRESS_LIST * PHAL_AMLI_BAD_IO_ADDRESS_LIST
pHalEndOfBoot HalEndOfBoot
PBUS_HANDLER(FASTCALL * pHalHandlerForBus)(_In_ INTERFACE_TYPE InterfaceType, _In_ ULONG BusNumber)
IN PVOID IN PVOID IN USHORT IN USHORT Size
struct _HAL_PROFILE_SOURCE_LIST HAL_PROFILE_SOURCE_LIST
pHalHandlerForBus HalReferenceHandlerForBus
_In_ ULONG _In_ ULONG _In_ ULONG NumberOfHeads
NTSTATUS(NTAPI * PHALIOREADWRITEHANDLER)(_In_ BOOLEAN fRead, _In_ ULONG dwAddr, _In_ ULONG dwSize, _Inout_ PULONG pdwData)
_In_ ULONG _In_ ULONG PartitionNumber
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
PVOID(NTAPI * pHalGetAcpiTable)(_In_ ULONG Signature, _In_opt_ PCSTR OemId, _In_opt_ PCSTR OemTableId)
NTSTATUS(NTAPI * pHalQuerySystemInformation)(_In_ HAL_QUERY_INFORMATION_CLASS InformationClass, _In_ ULONG BufferSize, _Inout_updates_bytes_to_(BufferSize, *ReturnedLength) PVOID Buffer, _Out_ PULONG ReturnedLength)
struct _PM_DISPATCH_TABLE PM_DISPATCH_TABLE
_In_opt_ PUNICODE_STRING DriverClassName
BOOLEAN(NTAPI * pHalTranslateBusAddress)(_In_ INTERFACE_TYPE InterfaceType, _In_ ULONG BusNumber, _In_ PHYSICAL_ADDRESS BusAddress, _Inout_ PULONG AddressSpace, _Out_ PPHYSICAL_ADDRESS TranslatedAddress)
$if(_NTDDK_) typedef BOOLEAN(NTAPI *PHAL_RESET_DISPLAY_PARAMETERS)(_In_ ULONG Columns
pHalIoSetPartitionInformation HalIoSetPartitionInformation
_In_ PDEVICE_OBJECT DeviceObject
NTSTATUS(NTAPI * pHalStartMirroring)(VOID)
BOOLEAN(NTAPI * pHalFindBusAddressTranslation)(_In_ PHYSICAL_ADDRESS BusAddress, _Inout_ PULONG AddressSpace, _Out_ PPHYSICAL_ADDRESS TranslatedAddress, _Inout_ PULONG_PTR Context, _In_ BOOLEAN NextBus)
_HAL_SET_INFORMATION_CLASS
NTSTATUS(FASTCALL * pHalIoReadPartitionTable)(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG SectorSize, _In_ BOOLEAN ReturnRecognizedPartitions, _Out_ struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_In_ ULONG _In_ ULONG SectorsPerTrack
NTSTATUS(FASTCALL * pHalIoSetPartitionInformation)(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG SectorSize, _In_ ULONG PartitionNumber, _In_ ULONG PartitionType)
PCALLBACK_OBJECT SetSystemInformation
PCALLBACK_OBJECT BusCheck
struct _HAL_PLATFORM_INFORMATION HAL_PLATFORM_INFORMATION
_In_ ULONG _In_ BOOLEAN _Out_ struct _DRIVE_LAYOUT_INFORMATION ** PartitionBuffer
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)
enum _KPROFILE_SOURCE KPROFILE_SOURCE
struct _HAL_CALLBACKS HAL_CALLBACKS
struct _HAL_PROCESSOR_FEATURE HAL_PROCESSOR_FEATURE
$endif(_WDMDDK_) $if(_NTDDK_) typedef struct _NEON128
struct _DMA_ADAPTER *NTAPI * pHalGetDmaAdapter(_In_ PVOID Context, _In_ struct _DEVICE_DESCRIPTION *DeviceDescriptor, _Out_ PULONG NumberOfMapRegisters)
enum _HAL_DISPLAY_BIOS_INFORMATION HAL_DISPLAY_BIOS_INFORMATION
VOID(FASTCALL * pHalIoAssignDriveLetters)(_In_ struct _LOADER_PARAMETER_BLOCK *LoaderBlock, _In_ PSTRING NtDeviceName, _Out_ PUCHAR NtSystemPath, _Out_ PSTRING NtSystemPathString)
struct _HAL_PROFILE_SOURCE_INFORMATION * PHAL_PROFILE_SOURCE_INFORMATION
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
NTSTATUS(NTAPI * pHalInitPnpDriver)(VOID)
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
enum _HAL_QUERY_INFORMATION_CLASS HAL_QUERY_INFORMATION_CLASS
NTSTATUS(NTAPI * pHalEndMirroring)(_In_ ULONG PassNumber)
#define _Inout_updates_bytes_(s)
const KSDEVICE_DESCRIPTOR DeviceDescriptor
struct _HAL_PROFILE_SOURCE_INTERVAL HAL_PROFILE_SOURCE_INTERVAL
struct _HAL_PROFILE_SOURCE_INFORMATION_EX HAL_PROFILE_SOURCE_INFORMATION_EX
struct _HAL_CALLBACKS * PHAL_CALLBACKS
#define _Inout_updates_bytes_to_(s, c)
struct _HAL_PROFILE_SOURCE_INTERVAL * PHAL_PROFILE_SOURCE_INTERVAL
struct _HAL_PROCESSOR_SPEED_INFO * PHAL_PROCESSOR_SPEED_INFORMATION
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
PHAL_DISPATCH HalDispatchTable
IN PVOID IN PVOID IN USHORT Version
VOID(FASTCALL * pHalReferenceBusHandler)(_In_ PBUS_HANDLER BusHandler)
VOID(NTAPI * pHalSetPciErrorHandlerCallback)(_In_ PCI_ERROR_HANDLER_CALLBACK Callback)
struct _HAL_POWER_INFORMATION HAL_POWER_INFORMATION
enum _HAL_SET_INFORMATION_CLASS HAL_SET_INFORMATION_CLASS
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
struct _HAL_PROFILE_SOURCE_LIST * PHAL_PROFILE_SOURCE_LIST
struct _HAL_PROCESSOR_SPEED_INFO HAL_PROCESSOR_SPEED_INFORMATION
_In_ PNDIS_STRING _In_opt_ NDIS_HANDLE DeviceContext
pHalIoReadPartitionTable HalIoReadPartitionTable
KDEFERRED_ROUTINE * PKDEFERRED_ROUTINE
NTSTATUS(NTAPI * pHalMirrorVerify)(_In_ PHYSICAL_ADDRESS PhysicalAddress, _In_ LARGE_INTEGER NumberOfBytes)
_In_ ULONG _In_ BOOLEAN ReturnRecognizedPartitions
_In_ ULONG _In_ BATTERY_QUERY_INFORMATION_LEVEL _In_ LONG _In_ ULONG _Out_ PULONG ReturnedLength
pHalGetDmaAdapter HalGetDmaAdapter
VOID(FASTCALL * pHalExamineMBR)(_In_ PDEVICE_OBJECT DeviceObject, _In_ ULONG SectorSize, _In_ ULONG MBRTypeIdentifier, _Out_ PVOID *Buffer)
pHalQueryBusSlots HalQueryBusSlots
VOID(NTAPI * pHalEndOfBoot)(VOID)
pHalInitPowerManagement HalInitPowerManagement
struct _HAL_BUS_INFORMATION HAL_BUS_INFORMATION
NTSTATUS(NTAPI * pHalSetSystemInformation)(_In_ HAL_SET_INFORMATION_CLASS InformationClass, _In_ ULONG BufferSize, _In_ PVOID Buffer)
struct _PM_DISPATCH_TABLE * PPM_DISPATCH_TABLE
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
pHalStartMirroring HalStartMirroring
pHalEndMirroring HalEndMirroring
VOID(NTAPI * pHalHaltSystem)(VOID)
static const COLUMN_LIST Columns[]
struct _MAP_REGISTER_ENTRY MAP_REGISTER_ENTRY
pHalSetPciErrorHandlerCallback HalSetPciErrorHandlerCallback
pHalInitPnpDriver HalInitPnpDriver
pHalIoAssignDriveLetters HalIoAssignDriveLetters
pHalGetInterruptTranslator HalGetInterruptTranslator
_In_ ULONG _In_ ULONG MBRTypeIdentifier
struct _HAL_AMLI_BAD_IO_ADDRESS_LIST HAL_AMLI_BAD_IO_ADDRESS_LIST
struct HAL_DISPATCH * PHAL_DISPATCH
pHalMirrorVerify HalMirrorVerify
UCHAR(NTAPI * pHalVectorToIDTEntry)(ULONG Vector)
_In_ PKSERVICE_ROUTINE _In_opt_ PVOID _In_opt_ PKSPIN_LOCK _In_ ULONG Vector
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes
struct _HAL_BUS_INFORMATION * PHAL_BUS_INFORMATION
pHalExamineMBR HalExamineMBR
pHalReferenceBusHandler HalDereferenceBusHandler
struct tagContext Context
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
pHalSetSystemInformation HalSetSystemInformation
VOID(NTAPI * PCI_ERROR_HANDLER_CALLBACK)(VOID)
struct _BUS_HANDLER * PBUS_HANDLER
NTSTATUS(NTAPI * pHalQueryBusSlots)(_In_ PBUS_HANDLER BusHandler, _In_ ULONG BufferSize, _Out_ PULONG SlotNumbers, _Out_ PULONG ReturnedLength)
enum _HAL_QUERY_INFORMATION_CLASS * PHAL_QUERY_INFORMATION_CLASS
struct _HAL_PROFILE_SOURCE_INFORMATION HAL_PROFILE_SOURCE_INFORMATION
_In_ FILTER_INFORMATION_CLASS InformationClass
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 _MAP_REGISTER_ENTRY * PMAP_REGISTER_ENTRY
static const WCHAR Signature[]
_HAL_QUERY_INFORMATION_CLASS
struct _HAL_PROFILE_SOURCE_INFORMATION_EX * PHAL_PROFILE_SOURCE_INFORMATION_EX
enum _HAL_DISPLAY_BIOS_INFORMATION * PHAL_DISPLAY_BIOS_INFORMATION
pHalMirrorPhysicalMemory HalMirrorPhysicalMemory
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
pHalReferenceBusHandler HalReferenceBusHandler
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
pHalGetAcpiTable HalGetCachedAcpiTable
_HAL_DISPLAY_BIOS_INFORMATION
PHALIOREADWRITEHANDLER IOHandler