x64 / ntdllntoskrnl /

HAL_PRIVATE_DISPATCH

← 10.0.28000.3231 11 builds latest →
struct HAL_PRIVATE_DISPATCH {
unsigned long Version;/* 0x0 4 */
/* 4 bytes padding */
struct _BUS_HANDLER* (*HalHandlerForBus)(enum _INTERFACE_TYPE, unsigned long);/* 0x8 8 */
struct _BUS_HANDLER* (*HalHandlerForConfigSpace)(enum _BUS_DATA_TYPE, unsigned long);/* 0x10 8 */
void (*HalLocateHiberRanges)(void*);/* 0x18 8 */
long (*HalRegisterBusHandler)(enum _INTERFACE_TYPE, enum _BUS_DATA_TYPE, unsigned long, enum _INTERFACE_TYPE, unsigned long, unsigned long, long (*)(struct _BUS_HANDLER*), struct _BUS_HANDLER**);/* 0x20 8 */
void (*HalSetWakeEnable)(unsigned char);/* 0x28 8 */
long (*HalSetWakeAlarm)(unsigned __int64, unsigned __int64);/* 0x30 8 */
unsigned char (*HalPciTranslateBusAddress)(enum _INTERFACE_TYPE, unsigned long, union _LARGE_INTEGER, unsigned long*, union _LARGE_INTEGER*);/* 0x38 8 */
/* ── cacheline 1 boundary (64 bytes) ── */
long (*HalPciAssignSlotResources)(struct _UNICODE_STRING*, struct _UNICODE_STRING*, struct _DRIVER_OBJECT*, struct _DEVICE_OBJECT*, enum _INTERFACE_TYPE, unsigned long, unsigned long, struct _CM_RESOURCE_LIST**);/* 0x40 8 */
void (*HalHaltSystem)(void);/* 0x48 8 */
unsigned char (*HalFindBusAddressTranslation)(union _LARGE_INTEGER, unsigned long*, union _LARGE_INTEGER*, unsigned __int64*, unsigned char);/* 0x50 8 */
unsigned char (*HalResetDisplay)(void);/* 0x58 8 */
long (*HalAllocateMapRegisters)(struct _ADAPTER_OBJECT*, unsigned long, unsigned long, struct _MAP_REGISTER_ENTRY*);/* 0x60 8 */
long (*KdSetupPciDeviceForDebugging)(void*, struct _DEBUG_DEVICE_DESCRIPTOR*);/* 0x68 8 */
long (*KdReleasePciDeviceForDebugging)(struct _DEBUG_DEVICE_DESCRIPTOR*);/* 0x70 8 */
void* (*KdGetAcpiTablePhase0)(struct _LOADER_PARAMETER_BLOCK*, unsigned long);/* 0x78 8 */
/* ── cacheline 2 boundary (128 bytes) ── */
void (*KdCheckPowerButton)(void);/* 0x80 8 */
unsigned char (*HalVectorToIDTEntry)(unsigned long);/* 0x88 8 */
void* (*KdMapPhysicalMemory64)(union _LARGE_INTEGER, unsigned long, unsigned char);/* 0x90 8 */
void (*KdUnmapVirtualAddress)(void*, unsigned long, unsigned char);/* 0x98 8 */
unsigned long (*KdGetPciDataByOffset)(unsigned long, unsigned long, void*, unsigned long, unsigned long);/* 0xa0 8 */
unsigned long (*KdSetPciDataByOffset)(unsigned long, unsigned long, void*, unsigned long, unsigned long);/* 0xa8 8 */
unsigned long (*HalGetInterruptVectorOverride)(enum _INTERFACE_TYPE, unsigned long, unsigned long, unsigned long, unsigned char*, unsigned __int64*);/* 0xb0 8 */
long (*HalGetVectorInputOverride)(unsigned long, struct _GROUP_AFFINITY*, unsigned long*, enum _KINTERRUPT_POLARITY*, struct _INTERRUPT_REMAPPING_INFO*);/* 0xb8 8 */
/* ── cacheline 3 boundary (192 bytes) ── */
long (*HalLoadMicrocode)(void*);/* 0xc0 8 */
long (*HalUnloadMicrocode)(void);/* 0xc8 8 */
long (*HalPostMicrocodeUpdate)(void);/* 0xd0 8 */
long (*HalAllocateMessageTargetOverride)(struct _DEVICE_OBJECT*, struct _GROUP_AFFINITY*, unsigned long, enum _KINTERRUPT_MODE, unsigned char, unsigned long*, unsigned char*, unsigned long*);/* 0xd8 8 */
void (*HalFreeMessageTargetOverride)(struct _DEVICE_OBJECT*, unsigned long, struct _GROUP_AFFINITY*);/* 0xe0 8 */
long (*HalDpReplaceBegin)(struct _HAL_DP_REPLACE_PARAMETERS*, void**);/* 0xe8 8 */
void (*HalDpReplaceTarget)(void*);/* 0xf0 8 */
long (*HalDpReplaceControl)(unsigned long, void*);/* 0xf8 8 */
/* ── cacheline 4 boundary (256 bytes) ── */
void (*HalDpReplaceEnd)(void*);/* 0x100 8 */
void (*HalPrepareForBugcheck)(unsigned long);/* 0x108 8 */
unsigned char (*HalQueryWakeTime)(unsigned __int64*, unsigned __int64*);/* 0x110 8 */
void (*HalReportIdleStateUsage)(unsigned char, struct _KAFFINITY_EX*);/* 0x118 8 */
void (*HalTscSynchronization)(unsigned char, unsigned long*);/* 0x120 8 */
long (*HalWheaInitProcessorGenericSection)(struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR*, struct _WHEA_PROCESSOR_GENERIC_ERROR_SECTION*);/* 0x128 8 */
void (*HalStopLegacyUsbInterrupts)(enum _SYSTEM_POWER_STATE);/* 0x130 8 */
long (*HalReadWheaPhysicalMemory)(union _LARGE_INTEGER, unsigned long, void*);/* 0x138 8 */
/* ── cacheline 5 boundary (320 bytes) ── */
long (*HalWriteWheaPhysicalMemory)(union _LARGE_INTEGER, unsigned long, void*);/* 0x140 8 */
long (*HalDpMaskLevelTriggeredInterrupts)(void);/* 0x148 8 */
long (*HalDpUnmaskLevelTriggeredInterrupts)(void);/* 0x150 8 */
long (*HalDpGetInterruptReplayState)(void*, void**);/* 0x158 8 */
long (*HalDpReplayInterrupts)(void*);/* 0x160 8 */
unsigned char (*HalQueryIoPortAccessSupported)(void);/* 0x168 8 */
long (*KdSetupIntegratedDeviceForDebugging)(void*, struct _DEBUG_DEVICE_DESCRIPTOR*);/* 0x170 8 */
long (*KdReleaseIntegratedDeviceForDebugging)(struct _DEBUG_DEVICE_DESCRIPTOR*);/* 0x178 8 */
/* ── cacheline 6 boundary (384 bytes) ── */
void (*HalGetEnlightenmentInformation)(struct _HAL_INTEL_ENLIGHTENMENT_INFORMATION*);/* 0x180 8 */
void* (*HalAllocateEarlyPages)(struct _LOADER_PARAMETER_BLOCK*, unsigned long, unsigned __int64*, unsigned long);/* 0x188 8 */
void* (*HalMapEarlyPages)(unsigned __int64, unsigned long, unsigned long);/* 0x190 8 */
void* Dummy1;/* 0x198 8 */
void* Dummy2;/* 0x1a0 8 */
void (*HalNotifyProcessorFreeze)(unsigned char, unsigned char);/* 0x1a8 8 */
long (*HalPrepareProcessorForIdle)(unsigned long);/* 0x1b0 8 */
void (*HalRegisterLogRoutine)(struct _HAL_LOG_REGISTER_CONTEXT*);/* 0x1b8 8 */
/* ── cacheline 7 boundary (448 bytes) ── */
void (*HalResumeProcessorFromIdle)(void);/* 0x1c0 8 */
void* Dummy;/* 0x1c8 8 */
unsigned long (*HalVectorToIDTEntryEx)(unsigned long);/* 0x1d0 8 */
long (*HalSecondaryInterruptQueryPrimaryInformation)(struct _INTERRUPT_VECTOR_DATA*, unsigned long*);/* 0x1d8 8 */
long (*HalMaskInterrupt)(unsigned long, unsigned long);/* 0x1e0 8 */
long (*HalUnmaskInterrupt)(unsigned long, unsigned long);/* 0x1e8 8 */
unsigned char (*HalIsInterruptTypeSecondary)(unsigned long, unsigned long);/* 0x1f0 8 */
long (*HalAllocateGsivForSecondaryInterrupt)(char*, unsigned short, unsigned long*);/* 0x1f8 8 */
/* ── cacheline 8 boundary (512 bytes) ── */
long (*HalAddInterruptRemapping)(unsigned long, unsigned long, struct _PCI_BUSMASTER_DESCRIPTOR*, unsigned char, struct _INTERRUPT_VECTOR_DATA*, unsigned long);/* 0x200 8 */
void (*HalRemoveInterruptRemapping)(unsigned long, unsigned long, struct _PCI_BUSMASTER_DESCRIPTOR*, unsigned char, struct _INTERRUPT_VECTOR_DATA*, unsigned long);/* 0x208 8 */
void (*HalSaveAndDisableHvEnlightenment)(unsigned char);/* 0x210 8 */
void (*HalRestoreHvEnlightenment)(void);/* 0x218 8 */
void (*HalFlushIoBuffersExternalCache)(struct _MDL*, unsigned char);/* 0x220 8 */
void (*HalFlushExternalCache)(unsigned char);/* 0x228 8 */
long (*HalPciEarlyRestore)(enum _SYSTEM_POWER_STATE);/* 0x230 8 */
long (*HalGetProcessorId)(unsigned long, unsigned long*, unsigned long*);/* 0x238 8 */
/* ── cacheline 9 boundary (576 bytes) ── */
long (*HalAllocatePmcCounterSet)(unsigned long, enum _KPROFILE_SOURCE*, unsigned long, struct _HAL_PMC_COUNTERS**);/* 0x240 8 */
void (*HalCollectPmcCounters)(struct _HAL_PMC_COUNTERS*, unsigned __int64*);/* 0x248 8 */
void (*HalFreePmcCounterSet)(struct _HAL_PMC_COUNTERS*);/* 0x250 8 */
long (*HalProcessorHalt)(unsigned long, void*, long (*)(void*));/* 0x258 8 */
unsigned __int64 (*HalTimerQueryCycleCounter)(unsigned __int64*);/* 0x260 8 */
void* Dummy3;/* 0x268 8 */
void (*HalPciMarkHiberPhase)(void);/* 0x270 8 */
long (*HalQueryProcessorRestartEntryPoint)(union _LARGE_INTEGER*);/* 0x278 8 */
/* ── cacheline 10 boundary (640 bytes) ── */
long (*HalRequestInterrupt)(unsigned long);/* 0x280 8 */
long (*HalEnumerateUnmaskedInterrupts)(unsigned char (*)(void*, struct _HAL_UNMASKED_INTERRUPT_INFORMATION*), void*, struct _HAL_UNMASKED_INTERRUPT_INFORMATION*);/* 0x288 8 */
void (*HalFlushAndInvalidatePageExternalCache)(union _LARGE_INTEGER);/* 0x290 8 */
long (*KdEnumerateDebuggingDevices)(void*, struct _DEBUG_DEVICE_DESCRIPTOR*, enum KD_CALLBACK_ACTION (*)(struct _DEBUG_DEVICE_DESCRIPTOR*));/* 0x298 8 */
void (*HalFlushIoRectangleExternalCache)(struct _MDL*, unsigned long, unsigned long, unsigned long, unsigned long, unsigned char);/* 0x2a0 8 */
void (*HalPowerEarlyRestore)(unsigned long);/* 0x2a8 8 */
long (*HalQueryCapsuleCapabilities)(void*, unsigned long, unsigned __int64*, unsigned long*);/* 0x2b0 8 */
long (*HalUpdateCapsule)(void*, unsigned long, union _LARGE_INTEGER);/* 0x2b8 8 */
/* ── cacheline 11 boundary (704 bytes) ── */
unsigned char (*HalPciMultiStageResumeCapable)(void);/* 0x2c0 8 */
void (*HalDmaFreeCrashDumpRegisters)(unsigned long);/* 0x2c8 8 */
unsigned char (*HalAcpiAoacCapable)(void);/* 0x2d0 8 */
long (*HalInterruptSetDestination)(struct _INTERRUPT_VECTOR_DATA*, struct _GROUP_AFFINITY*, unsigned long*);/* 0x2d8 8 */
void (*HalGetClockConfiguration)(struct _HAL_CLOCK_TIMER_CONFIGURATION*);/* 0x2e0 8 */
void (*HalClockTimerActivate)(unsigned char);/* 0x2e8 8 */
void (*HalClockTimerInitialize)(void);/* 0x2f0 8 */
void (*HalClockTimerStop)(void);/* 0x2f8 8 */
/* ── cacheline 12 boundary (768 bytes) ── */
long (*HalClockTimerArm)(enum _HAL_CLOCK_TIMER_MODE, unsigned __int64, unsigned __int64*);/* 0x300 8 */
unsigned char (*HalTimerOnlyClockInterruptPending)(void);/* 0x308 8 */
void* (*HalAcpiGetMultiNode)(void);/* 0x310 8 */
void (* (*HalPowerSetRebootHandler)(void (*)(unsigned long, volatile long*));/* 0x318 8 */
void (*HalIommuRegisterDispatchTable)(struct _HAL_IOMMU_DISPATCH*);/* 0x320 8 */
void (*HalTimerWatchdogStart)(void);/* 0x328 8 */
void (*HalTimerWatchdogResetCountdown)(void);/* 0x330 8 */
void (*HalTimerWatchdogStop)(void);/* 0x338 8 */
/* ── cacheline 13 boundary (832 bytes) ── */
unsigned char (*HalTimerWatchdogGeneratedLastReset)(void);/* 0x340 8 */
long (*HalTimerWatchdogTriggerSystemReset)(unsigned char);/* 0x348 8 */
long (*HalInterruptVectorDataToGsiv)(struct _INTERRUPT_VECTOR_DATA*, unsigned long*);/* 0x350 8 */
long (*HalInterruptGetHighestPriorityInterrupt)(unsigned long*, unsigned char*);/* 0x358 8 */
long (*HalProcessorOn)(unsigned long);/* 0x360 8 */
long (*HalProcessorOff)(void);/* 0x368 8 */
long (*HalProcessorFreeze)(void);/* 0x370 8 */
long (*HalDmaLinkDeviceObjectByToken)(unsigned __int64, struct _DEVICE_OBJECT*);/* 0x378 8 */
/* ── cacheline 14 boundary (896 bytes) ── */
long (*HalDmaCheckAdapterToken)(unsigned __int64);/* 0x380 8 */
void* Dummy4;/* 0x388 8 */
long (*HalTimerConvertPerformanceCounterToAuxiliaryCounter)(unsigned __int64, unsigned __int64*, unsigned __int64*);/* 0x390 8 */
long (*HalTimerConvertAuxiliaryCounterToPerformanceCounter)(unsigned __int64, unsigned __int64*, unsigned __int64*);/* 0x398 8 */
long (*HalTimerQueryAuxiliaryCounterFrequency)(unsigned __int64*);/* 0x3a0 8 */
long (*HalConnectThermalInterrupt)(unsigned char (*)(struct _KINTERRUPT*, void*));/* 0x3a8 8 */
unsigned char (*HalIsEFIRuntimeActive)(void);/* 0x3b0 8 */
unsigned long (*HalTimerQueryAndResetRtcErrors)(unsigned char, unsigned char);/* 0x3b8 8 */
/* ── cacheline 15 boundary (960 bytes) ── */
void (*HalAcpiLateRestore)(void);/* 0x3c0 8 */
long (*KdWatchdogDelayExpiration)(unsigned __int64*);/* 0x3c8 8 */
long (*HalGetProcessorStats)(enum _HAL_PROCESSOR_STAT_TYPE, unsigned long, unsigned long, unsigned __int64*);/* 0x3d0 8 */
unsigned __int64 (*HalTimerWatchdogQueryDueTime)(unsigned char);/* 0x3d8 8 */
long (*HalConnectSyntheticInterrupt)(unsigned char (*)(struct _KINTERRUPT*, void*));/* 0x3e0 8 */
void (*HalPreprocessNmi)(unsigned long);/* 0x3e8 8 */
long (*HalEnumerateEnvironmentVariablesWithFilter)(unsigned long, unsigned char (*)(const struct _GUID*, const wchar_t*), void*, unsigned long*);/* 0x3f0 8 */
long (*HalCaptureLastBranchRecordStack)(unsigned long, struct _HAL_LBR_ENTRY*, unsigned long*);/* 0x3f8 8 */
/* ── cacheline 16 boundary (1024 bytes) ── */
unsigned char (*HalClearLastBranchRecordStack)(void);/* 0x400 8 */
long (*HalConfigureLastBranchRecord)(unsigned long, unsigned long);/* 0x408 8 */
unsigned char (*HalGetLastBranchInformation)(unsigned long*, unsigned long*);/* 0x410 8 */
void (*HalResumeLastBranchRecord)(unsigned char);/* 0x418 8 */
long (*HalStartLastBranchRecord)(unsigned long, unsigned long*);/* 0x420 8 */
long (*HalStopLastBranchRecord)(unsigned long);/* 0x428 8 */
long (*HalIommuBlockDevice)(struct _IOMMU_DMA_DEVICE*);/* 0x430 8 */
long (*HalIommuUnblockDevice)(struct _EXT_IOMMU_DEVICE_ID*, struct _DEVICE_OBJECT*, struct _IOMMU_DMA_DEVICE**);/* 0x438 8 */
/* ── cacheline 17 boundary (1088 bytes) ── */
long (*HalGetIommuInterface)(unsigned long, struct _DMA_IOMMU_INTERFACE*);/* 0x440 8 */
long (*HalRequestGenericErrorRecovery)(void*, unsigned long*);/* 0x448 8 */
long (*HalTimerQueryHostPerformanceCounter)(unsigned __int64*);/* 0x450 8 */
long (*HalTopologyQueryProcessorRelationships)(unsigned long, unsigned long, unsigned char*, unsigned char*, unsigned char*, unsigned long*, unsigned long*);/* 0x458 8 */
void (*HalInitPlatformDebugTriggers)(void);/* 0x460 8 */
void (*HalRunPlatformDebugTriggers)(unsigned char);/* 0x468 8 */
void* (*HalTimerGetReferencePage)(void);/* 0x470 8 */
long (*HalGetHiddenProcessorPowerInterface)(struct _HIDDEN_PROCESSOR_POWER_INTERFACE*);/* 0x478 8 */
/* ── cacheline 18 boundary (1152 bytes) ── */
unsigned long (*HalGetHiddenProcessorPackageId)(unsigned long);/* 0x480 8 */
unsigned long (*HalGetHiddenPackageProcessorCount)(unsigned long);/* 0x488 8 */
long (*HalGetHiddenProcessorApicIdByIndex)(unsigned long, unsigned long*);/* 0x490 8 */
long (*HalRegisterHiddenProcessorIdleState)(unsigned long, unsigned __int64);/* 0x498 8 */
void (*HalIommuReportIommuFault)(struct _IOMMU_FAULT_SOURCE_ID*, unsigned __int64, struct _FAULT_INFORMATION*);/* 0x4a0 8 */
unsigned char (*HalIommuDmaRemappingCapable)(struct _EXT_IOMMU_DEVICE_ID*, unsigned long*);/* 0x4a8 8 */
long (*HalAllocatePmcCounterSetEx)(unsigned long, enum _KPROFILE_SOURCE*, unsigned long, unsigned long*, struct _HAL_PMC_COUNTERS**, unsigned long*);/* 0x4b0 8 */
long (*HalStartProfileInterruptEx)(enum _KPROFILE_SOURCE, unsigned long*, unsigned long*, enum _HAL_PMU_COUNTER_TYPE*, struct _HAL_PMC_COUNTERS**);/* 0x4b8 8 */
/* ── cacheline 19 boundary (1216 bytes) ── */
long (*HalGetIommuInterfaceEx)(unsigned long, unsigned __int64, struct _DMA_IOMMU_INTERFACE_EX*);/* 0x4c0 8 */
void (*HalNotifyIommuDomainPolicyChange)(struct _DEVICE_OBJECT*);/* 0x4c8 8 */
unsigned char (*HalPciGetDeviceLocationFromPhysicalAddress)(unsigned __int64, unsigned short*, unsigned char*, unsigned char*, unsigned char*);/* 0x4d0 8 */
void (*HalInvokeSmc)(unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64*, unsigned __int64*, unsigned __int64*, unsigned __int64*);/* 0x4d8 8 */
void (*HalInvokeHvc)(unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64, unsigned __int64*, unsigned __int64*, unsigned __int64*, unsigned __int64*);/* 0x4e0 8 */
union _LARGE_INTEGER (*HalGetSoftRebootDatabase)(void);/* 0x4e8 8 */
long (*HalRequestPmuAccess)(void);/* 0x4f0 8 */
long (*HalTopologyQueryProcessorCacheInformation)(unsigned long, unsigned char, enum _PROCESSOR_CACHE_TYPE, enum _PROCESSOR_CACHE_TYPE*, void**);/* 0x4f8 8 */
/* ── cacheline 20 boundary (1280 bytes) ── */
void (*HalReleasePmuAccessRequest)(void);/* 0x500 8 */
unsigned long (*HalTimerQueryRtcErrors)(void);/* 0x508 8 */
long (*HalExternalPciConfigSpaceAccess)(unsigned char, void*, unsigned short, unsigned char, unsigned long, unsigned long, unsigned long, unsigned long, unsigned char*, unsigned long*);/* 0x510 8 */
unsigned __int64 (*HalTimerQueryInvariantPlatformCounter)(unsigned __int64*);/* 0x518 8 */
long (*HalLoadSfsUpdate)(void*);/* 0x520 8 */
void* (*HalGetEfiRuntimeServicesTable)(unsigned long*);/* 0x528 8 */
long (*HalInitializeDevirtualization)(void);/* 0x530 8 */
long (*HalSetEnvVarUnsynchronized)(wchar_t*, const struct _GUID*, void*, unsigned long, unsigned long);/* 0x538 8 */
};
size 1344 (0x540)168 members1 hole (4 bytes)padding 021 cachelines