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
Used in (0)