5 (
NTAPI *PHAL_RESET_DISPLAY_PARAMETERS)(
213 (*pHalGetErrorCapList)(
267 pHalGetErrorCapList HalGetErrorCapList;
268 pHalInjectError HalInjectError;
272 #if !defined(_NTSYSTEM_) && (defined(_NTDRIVER_) || defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_)) 275 #define HALDISPATCH HalDispatchTable 278 #define HALDISPATCH (&HalDispatchTable) 283 #if (NTDDI_VERSION < NTDDI_WIN2K) 284 #define HAL_DISPATCH_VERSION 1 285 #elif (NTDDI_VERSION < NTDDI_WINXP) 286 #define HAL_DISPATCH_VERSION 2 287 #elif (NTDDI_VERSION < NTDDI_WIN7) 288 #define HAL_DISPATCH_VERSION 3 290 #define HAL_DISPATCH_VERSION 4 293 #define HalDispatchTableVersion HALDISPATCH->Version 294 #define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation 295 #define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation 296 #define HalQueryBusSlots HALDISPATCH->HalQueryBusSlots 297 #define HalReferenceHandlerForBus HALDISPATCH->HalReferenceHandlerForBus 298 #define HalReferenceBusHandler HALDISPATCH->HalReferenceBusHandler 299 #define HalDereferenceBusHandler HALDISPATCH->HalDereferenceBusHandler 300 #define HalInitPnpDriver HALDISPATCH->HalInitPnpDriver 301 #define HalInitPowerManagement HALDISPATCH->HalInitPowerManagement 302 #define HalGetDmaAdapter HALDISPATCH->HalGetDmaAdapter 303 #define HalGetInterruptTranslator HALDISPATCH->HalGetInterruptTranslator 304 #define HalStartMirroring HALDISPATCH->HalStartMirroring 305 #define HalEndMirroring HALDISPATCH->HalEndMirroring 306 #define HalMirrorPhysicalMemory HALDISPATCH->HalMirrorPhysicalMemory 307 #define HalEndOfBoot HALDISPATCH->HalEndOfBoot 308 #define HalMirrorVerify HALDISPATCH->HalMirrorVerify 309 #define HalGetCachedAcpiTable HALDISPATCH->HalGetCachedAcpiTable 310 #define HalSetPciErrorHandlerCallback HALDISPATCH->HalSetPciErrorHandlerCallback 312 #define HalGetErrorCapList HALDISPATCH->HalGetErrorCapList 313 #define HalInjectError HALDISPATCH->HalInjectError 385 #if defined(_X86_) || defined(_IA64_) || defined(_AMD64_) 394 (
NTAPI *PHALMCAINTERFACEREADREGISTER)(
398 typedef struct _HAL_MCA_INTERFACE {
399 PHALMCAINTERFACELOCK
Lock;
400 PHALMCAINTERFACEUNLOCK
Unlock;
401 PHALMCAINTERFACEREADREGISTER ReadRegister;
405 ApicDestinationModePhysical = 1,
406 ApicDestinationModeLogicalFlat,
407 ApicDestinationModeLogicalClustered,
408 ApicDestinationModeUnknown
409 } HAL_APIC_DESTINATION_MODE, *PHAL_APIC_DESTINATION_MODE;
416 typedef ERROR_SEVERITY
417 (
NTAPI *PDRIVER_EXCPTN_CALLBACK)(
421 _In_ PMCA_EXCEPTION Exception);
425 #if defined(_X86_) || defined(_IA64_) 432 (
NTAPI *PDRIVER_EXCPTN_CALLBACK)(
434 _In_ PMCA_EXCEPTION BankLog);
437 typedef PDRIVER_EXCPTN_CALLBACK PDRIVER_MCA_EXCEPTION_CALLBACK;
439 typedef struct _MCA_DRIVER_INFO {
440 PDRIVER_MCA_EXCEPTION_CALLBACK ExceptionCallback;
443 } MCA_DRIVER_INFO, *PMCA_DRIVER_INFO;
445 typedef struct _HAL_ERROR_INFO {
449 ULONG McaPreviousEventsCount;
450 ULONG McaCorrectedEventsCount;
451 ULONG McaKernelDeliveryFails;
452 ULONG McaDriverDpcQueueFails;
455 ULONG CmcPollingInterval;
456 ULONG CmcInterruptsCount;
457 ULONG CmcKernelDeliveryFails;
458 ULONG CmcDriverDpcQueueFails;
459 ULONG CmcGetStateFails;
460 ULONG CmcClearStateFails;
464 ULONG CpePollingInterval;
465 ULONG CpeInterruptsCount;
466 ULONG CpeKernelDeliveryFails;
467 ULONG CpeDriverDpcQueueFails;
468 ULONG CpeGetStateFails;
469 ULONG CpeClearStateFails;
470 ULONG CpeInterruptSources;
473 } HAL_ERROR_INFO, *PHAL_ERROR_INFO;
475 #define HAL_MCE_INTERRUPTS_BASED ((ULONG)-1) 476 #define HAL_MCE_DISABLED ((ULONG)0) 478 #define HAL_CMC_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED 479 #define HAL_CMC_DISABLED HAL_MCE_DISABLED 481 #define HAL_CPE_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED 482 #define HAL_CPE_DISABLED HAL_MCE_DISABLED 484 #define HAL_MCA_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED 485 #define HAL_MCA_DISABLED HAL_MCE_DISABLED 488 (
NTAPI *PDRIVER_CMC_EXCEPTION_CALLBACK)(
490 _In_ PCMC_EXCEPTION CmcLog);
493 (
NTAPI *PDRIVER_CPE_EXCEPTION_CALLBACK)(
495 _In_ PCPE_EXCEPTION CmcLog);
497 typedef struct _CMC_DRIVER_INFO {
498 PDRIVER_CMC_EXCEPTION_CALLBACK ExceptionCallback;
501 } CMC_DRIVER_INFO, *PCMC_DRIVER_INFO;
503 typedef struct _CPE_DRIVER_INFO {
504 PDRIVER_CPE_EXCEPTION_CALLBACK ExceptionCallback;
507 } CPE_DRIVER_INFO, *PCPE_DRIVER_INFO;
509 #endif // defined(_X86_) || defined(_IA64_) || defined(_AMD64_) 514 (*HALSENDCROSSPARTITIONIPI)(
519 (*HALRESERVECROSSPARTITIONINTERRUPTVECTOR)(
526 (*HALFREECROSSPARTITIONINTERRUPTVECTOR)(
530 typedef struct _HAL_CROSS_PARTITION_IPI_INTERFACE {
531 HALSENDCROSSPARTITIONIPI HalSendCrossPartitionIpi;
532 HALRESERVECROSSPARTITIONINTERRUPTVECTOR HalReserveCrossPartitionInterruptVector;
533 HALFREECROSSPARTITIONINTERRUPTVECTOR HalFreeCrossPartitionInterruptVector;
534 } HAL_CROSS_PARTITION_IPI_INTERFACE;
536 #define HAL_CROSS_PARTITION_IPI_INTERFACE_MINIMUM_SIZE \ 537 FIELD_OFFSET(HAL_CROSS_PARTITION_IPI_INTERFACE, \ 538 HalFreeCrossPartitionInterruptVector) 546 #define HAL_PLATFORM_DISABLE_WRITE_COMBINING 0x01L 547 #define HAL_PLATFORM_DISABLE_PTCG 0x04L 548 #define HAL_PLATFORM_DISABLE_UC_MAIN_MEMORY 0x08L 549 #define HAL_PLATFORM_ENABLE_WRITE_COMBINING_MMIO 0x10L 550 #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
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)
HAL_DISPATCH HalDispatchTable
$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
#define _Inout_updates_bytes_(size)
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)
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
struct _HAL_PROFILE_SOURCE_INTERVAL * PHAL_PROFILE_SOURCE_INTERVAL
struct _HAL_PROCESSOR_SPEED_INFO * PHAL_PROCESSOR_SPEED_INFORMATION
#define _Inout_updates_bytes_to_(size, count)
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
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
#define _In_reads_bytes_(size)
pHalGetAcpiTable HalGetCachedAcpiTable
_HAL_DISPLAY_BIOS_INFORMATION
PHALIOREADWRITEHANDLER IOHandler