Last active
August 31, 2024 08:36
-
-
Save inoperable/25693d502acca3746e9d0b751e8b0ff3 to your computer and use it in GitHub Desktop.
Revisions
-
inoperable revised this gist
Aug 31, 2024 . No changes.There are no files selected for viewing
-
inoperable renamed this gist
Aug 31, 2024 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
inoperable created this gist
Aug 31, 2024 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,162 @@ //0x4f0 bytes (sizeof) struct HAL_PRIVATE_DISPATCH { ULONG Version; //0x0 struct _BUS_HANDLER* (*HalHandlerForBus)(enum _INTERFACE_TYPE arg1, ULONG arg2); //0x8 struct _BUS_HANDLER* (*HalHandlerForConfigSpace)(enum _BUS_DATA_TYPE arg1, ULONG arg2); //0x10 VOID (*HalLocateHiberRanges)(VOID* arg1); //0x18 LONG (*HalRegisterBusHandler)(enum _INTERFACE_TYPE arg1, enum _BUS_DATA_TYPE arg2, ULONG arg3, enum _INTERFACE_TYPE arg4, ULONG arg5, ULONG arg6, LONG (*arg7)(struct _BUS_HANDLER* arg1), struct _BUS_HANDLER** arg8); //0x20 VOID (*HalSetWakeEnable)(UCHAR arg1); //0x28 LONG (*HalSetWakeAlarm)(ULONGLONG arg1, ULONGLONG arg2); //0x30 UCHAR (*HalPciTranslateBusAddress)(enum _INTERFACE_TYPE arg1, ULONG arg2, union _LARGE_INTEGER arg3, ULONG* arg4, union _LARGE_INTEGER* arg5); //0x38 LONG (*HalPciAssignSlotResources)(struct _UNICODE_STRING* arg1, struct _UNICODE_STRING* arg2, struct _DRIVER_OBJECT* arg3, struct _DEVICE_OBJECT* arg4, enum _INTERFACE_TYPE arg5, ULONG arg6, ULONG arg7, struct _CM_RESOURCE_LIST** arg8); //0x40 VOID (*HalHaltSystem)(); //0x48 UCHAR (*HalFindBusAddressTranslation)(union _LARGE_INTEGER arg1, ULONG* arg2, union _LARGE_INTEGER* arg3, ULONGLONG* arg4, UCHAR arg5); //0x50 UCHAR (*HalResetDisplay)(); //0x58 LONG (*HalAllocateMapRegisters)(struct _ADAPTER_OBJECT* arg1, ULONG arg2, ULONG arg3, struct _MAP_REGISTER_ENTRY* arg4); //0x60 LONG (*KdSetupPciDeviceForDebugging)(VOID* arg1, struct _DEBUG_DEVICE_DESCRIPTOR* arg2); //0x68 LONG (*KdReleasePciDeviceForDebugging)(struct _DEBUG_DEVICE_DESCRIPTOR* arg1); //0x70 VOID* (*KdGetAcpiTablePhase0)(struct _LOADER_PARAMETER_BLOCK* arg1, ULONG arg2); //0x78 VOID (*KdCheckPowerButton)(); //0x80 UCHAR (*HalVectorToIDTEntry)(ULONG arg1); //0x88 VOID* (*KdMapPhysicalMemory64)(union _LARGE_INTEGER arg1, ULONG arg2, UCHAR arg3); //0x90 VOID (*KdUnmapVirtualAddress)(VOID* arg1, ULONG arg2, UCHAR arg3); //0x98 ULONG (*KdGetPciDataByOffset)(ULONG arg1, ULONG arg2, VOID* arg3, ULONG arg4, ULONG arg5); //0xa0 ULONG (*KdSetPciDataByOffset)(ULONG arg1, ULONG arg2, VOID* arg3, ULONG arg4, ULONG arg5); //0xa8 ULONG (*HalGetInterruptVectorOverride)(enum _INTERFACE_TYPE arg1, ULONG arg2, ULONG arg3, ULONG arg4, UCHAR* arg5, ULONGLONG* arg6); //0xb0 LONG (*HalGetVectorInputOverride)(ULONG arg1, struct _GROUP_AFFINITY* arg2, ULONG* arg3, enum _KINTERRUPT_POLARITY* arg4, struct _INTERRUPT_REMAPPING_INFO* arg5); //0xb8 LONG (*HalLoadMicrocode)(VOID* arg1); //0xc0 LONG (*HalUnloadMicrocode)(); //0xc8 LONG (*HalPostMicrocodeUpdate)(); //0xd0 LONG (*HalAllocateMessageTargetOverride)(struct _DEVICE_OBJECT* arg1, struct _GROUP_AFFINITY* arg2, ULONG arg3, enum _KINTERRUPT_MODE arg4, UCHAR arg5, ULONG* arg6, UCHAR* arg7, ULONG* arg8); //0xd8 VOID (*HalFreeMessageTargetOverride)(struct _DEVICE_OBJECT* arg1, ULONG arg2, struct _GROUP_AFFINITY* arg3); //0xe0 LONG (*HalDpReplaceBegin)(struct _HAL_DP_REPLACE_PARAMETERS* arg1, VOID** arg2); //0xe8 VOID (*HalDpReplaceTarget)(VOID* arg1); //0xf0 LONG (*HalDpReplaceControl)(ULONG arg1, VOID* arg2); //0xf8 VOID (*HalDpReplaceEnd)(VOID* arg1); //0x100 VOID (*HalPrepareForBugcheck)(ULONG arg1); //0x108 UCHAR (*HalQueryWakeTime)(ULONGLONG* arg1, ULONGLONG* arg2); //0x110 VOID (*HalReportIdleStateUsage)(UCHAR arg1, struct _KAFFINITY_EX* arg2); //0x118 VOID (*HalTscSynchronization)(UCHAR arg1, ULONG* arg2); //0x120 LONG (*HalWheaInitProcessorGenericSection)(struct _WHEA_ERROR_RECORD_SECTION_DESCRIPTOR* arg1, struct _WHEA_PROCESSOR_GENERIC_ERROR_SECTION* arg2); //0x128 VOID (*HalStopLegacyUsbInterrupts)(enum _SYSTEM_POWER_STATE arg1); //0x130 LONG (*HalReadWheaPhysicalMemory)(union _LARGE_INTEGER arg1, ULONG arg2, VOID* arg3); //0x138 LONG (*HalWriteWheaPhysicalMemory)(union _LARGE_INTEGER arg1, ULONG arg2, VOID* arg3); //0x140 LONG (*HalDpMaskLevelTriggeredInterrupts)(); //0x148 LONG (*HalDpUnmaskLevelTriggeredInterrupts)(); //0x150 LONG (*HalDpGetInterruptReplayState)(VOID* arg1, VOID** arg2); //0x158 LONG (*HalDpReplayInterrupts)(VOID* arg1); //0x160 UCHAR (*HalQueryIoPortAccessSupported)(); //0x168 LONG (*KdSetupIntegratedDeviceForDebugging)(VOID* arg1, struct _DEBUG_DEVICE_DESCRIPTOR* arg2); //0x170 LONG (*KdReleaseIntegratedDeviceForDebugging)(struct _DEBUG_DEVICE_DESCRIPTOR* arg1); //0x178 VOID (*HalGetEnlightenmentInformation)(struct _HAL_INTEL_ENLIGHTENMENT_INFORMATION* arg1); //0x180 VOID* (*HalAllocateEarlyPages)(struct _LOADER_PARAMETER_BLOCK* arg1, ULONG arg2, ULONGLONG* arg3, ULONG arg4); //0x188 VOID* (*HalMapEarlyPages)(ULONGLONG arg1, ULONG arg2, ULONG arg3); //0x190 VOID* Dummy1; //0x198 VOID* Dummy2; //0x1a0 VOID (*HalNotifyProcessorFreeze)(UCHAR arg1, UCHAR arg2); //0x1a8 LONG (*HalPrepareProcessorForIdle)(ULONG arg1); //0x1b0 VOID (*HalRegisterLogRoutine)(struct _HAL_LOG_REGISTER_CONTEXT* arg1); //0x1b8 VOID (*HalResumeProcessorFromIdle)(); //0x1c0 VOID* Dummy; //0x1c8 ULONG (*HalVectorToIDTEntryEx)(ULONG arg1); //0x1d0 LONG (*HalSecondaryInterruptQueryPrimaryInformation)(struct _INTERRUPT_VECTOR_DATA* arg1, ULONG* arg2); //0x1d8 LONG (*HalMaskInterrupt)(ULONG arg1, ULONG arg2); //0x1e0 LONG (*HalUnmaskInterrupt)(ULONG arg1, ULONG arg2); //0x1e8 UCHAR (*HalIsInterruptTypeSecondary)(ULONG arg1, ULONG arg2); //0x1f0 LONG (*HalAllocateGsivForSecondaryInterrupt)(CHAR* arg1, USHORT arg2, ULONG* arg3); //0x1f8 LONG (*HalAddInterruptRemapping)(ULONG arg1, ULONG arg2, struct _PCI_BUSMASTER_DESCRIPTOR* arg3, UCHAR arg4, struct _INTERRUPT_VECTOR_DATA* arg5, ULONG arg6); //0x200 VOID (*HalRemoveInterruptRemapping)(ULONG arg1, ULONG arg2, struct _PCI_BUSMASTER_DESCRIPTOR* arg3, UCHAR arg4, struct _INTERRUPT_VECTOR_DATA* arg5, ULONG arg6); //0x208 VOID (*HalSaveAndDisableHvEnlightenment)(UCHAR arg1); //0x210 VOID (*HalRestoreHvEnlightenment)(); //0x218 VOID (*HalFlushIoBuffersExternalCache)(struct _MDL* arg1, UCHAR arg2); //0x220 VOID (*HalFlushExternalCache)(UCHAR arg1); //0x228 LONG (*HalPciEarlyRestore)(enum _SYSTEM_POWER_STATE arg1); //0x230 LONG (*HalGetProcessorId)(ULONG arg1, ULONG* arg2, ULONG* arg3); //0x238 LONG (*HalAllocatePmcCounterSet)(ULONG arg1, enum _KPROFILE_SOURCE* arg2, ULONG arg3, struct _HAL_PMC_COUNTERS** arg4); //0x240 VOID (*HalCollectPmcCounters)(struct _HAL_PMC_COUNTERS* arg1, ULONGLONG* arg2); //0x248 VOID (*HalFreePmcCounterSet)(struct _HAL_PMC_COUNTERS* arg1); //0x250 LONG (*HalProcessorHalt)(ULONG arg1, VOID* arg2, LONG (*arg3)(VOID* arg1)); //0x258 ULONGLONG (*HalTimerQueryCycleCounter)(ULONGLONG* arg1); //0x260 VOID* Dummy3; //0x268 VOID (*HalPciMarkHiberPhase)(); //0x270 LONG (*HalQueryProcessorRestartEntryPoint)(union _LARGE_INTEGER* arg1); //0x278 LONG (*HalRequestInterrupt)(ULONG arg1); //0x280 LONG (*HalEnumerateUnmaskedInterrupts)(UCHAR (*arg1)(VOID* arg1, struct _HAL_UNMASKED_INTERRUPT_INFORMATION* arg2), VOID* arg2, struct _HAL_UNMASKED_INTERRUPT_INFORMATION* arg3); //0x288 VOID (*HalFlushAndInvalidatePageExternalCache)(union _LARGE_INTEGER arg1); //0x290 LONG (*KdEnumerateDebuggingDevices)(VOID* arg1, struct _DEBUG_DEVICE_DESCRIPTOR* arg2, enum KD_CALLBACK_ACTION (*arg3)(struct _DEBUG_DEVICE_DESCRIPTOR* arg1)); //0x298 VOID (*HalFlushIoRectangleExternalCache)(struct _MDL* arg1, ULONG arg2, ULONG arg3, ULONG arg4, ULONG arg5, UCHAR arg6); //0x2a0 VOID (*HalPowerEarlyRestore)(ULONG arg1); //0x2a8 LONG (*HalQueryCapsuleCapabilities)(VOID* arg1, ULONG arg2, ULONGLONG* arg3, ULONG* arg4); //0x2b0 LONG (*HalUpdateCapsule)(VOID* arg1, ULONG arg2, union _LARGE_INTEGER arg3); //0x2b8 UCHAR (*HalPciMultiStageResumeCapable)(); //0x2c0 VOID (*HalDmaFreeCrashDumpRegisters)(ULONG arg1); //0x2c8 UCHAR (*HalAcpiAoacCapable)(); //0x2d0 LONG (*HalInterruptSetDestination)(struct _INTERRUPT_VECTOR_DATA* arg1, struct _GROUP_AFFINITY* arg2, ULONG* arg3); //0x2d8 VOID (*HalGetClockConfiguration)(struct _HAL_CLOCK_TIMER_CONFIGURATION* arg1); //0x2e0 VOID (*HalClockTimerActivate)(UCHAR arg1); //0x2e8 VOID (*HalClockTimerInitialize)(); //0x2f0 VOID (*HalClockTimerStop)(); //0x2f8 LONG (*HalClockTimerArm)(enum _HAL_CLOCK_TIMER_MODE arg1, ULONGLONG arg2, ULONGLONG* arg3); //0x300 UCHAR (*HalTimerOnlyClockInterruptPending)(); //0x308 VOID* (*HalAcpiGetMultiNode)(); //0x310 VOID (*)(ULONG arg1, volatile LONG* arg2)(*HalPowerSetRebootHandler)(VOID (*arg1)(ULONG arg1, volatile LONG* arg2)); //0x318 VOID (*HalIommuRegisterDispatchTable)(struct _HAL_IOMMU_DISPATCH* arg1); //0x320 VOID (*HalTimerWatchdogStart)(); //0x328 VOID (*HalTimerWatchdogResetCountdown)(); //0x330 VOID (*HalTimerWatchdogStop)(); //0x338 UCHAR (*HalTimerWatchdogGeneratedLastReset)(); //0x340 LONG (*HalTimerWatchdogTriggerSystemReset)(UCHAR arg1); //0x348 LONG (*HalInterruptVectorDataToGsiv)(struct _INTERRUPT_VECTOR_DATA* arg1, ULONG* arg2); //0x350 LONG (*HalInterruptGetHighestPriorityInterrupt)(ULONG* arg1, UCHAR* arg2); //0x358 LONG (*HalProcessorOn)(ULONG arg1); //0x360 LONG (*HalProcessorOff)(); //0x368 LONG (*HalProcessorFreeze)(); //0x370 LONG (*HalDmaLinkDeviceObjectByToken)(ULONGLONG arg1, struct _DEVICE_OBJECT* arg2); //0x378 LONG (*HalDmaCheckAdapterToken)(ULONGLONG arg1); //0x380 VOID* Dummy4; //0x388 LONG (*HalTimerConvertPerformanceCounterToAuxiliaryCounter)(ULONGLONG arg1, ULONGLONG* arg2, ULONGLONG* arg3); //0x390 LONG (*HalTimerConvertAuxiliaryCounterToPerformanceCounter)(ULONGLONG arg1, ULONGLONG* arg2, ULONGLONG* arg3); //0x398 LONG (*HalTimerQueryAuxiliaryCounterFrequency)(ULONGLONG* arg1); //0x3a0 LONG (*HalConnectThermalInterrupt)(UCHAR (*arg1)(struct _KINTERRUPT* arg1, VOID* arg2)); //0x3a8 UCHAR (*HalIsEFIRuntimeActive)(); //0x3b0 UCHAR (*HalTimerQueryAndResetRtcErrors)(UCHAR arg1); //0x3b8 VOID (*HalAcpiLateRestore)(); //0x3c0 LONG (*KdWatchdogDelayExpiration)(ULONGLONG* arg1); //0x3c8 LONG (*HalGetProcessorStats)(enum _HAL_PROCESSOR_STAT_TYPE arg1, ULONG arg2, ULONG arg3, ULONGLONG* arg4); //0x3d0 ULONGLONG (*HalTimerWatchdogQueryDueTime)(UCHAR arg1); //0x3d8 LONG (*HalConnectSyntheticInterrupt)(UCHAR (*arg1)(struct _KINTERRUPT* arg1, VOID* arg2)); //0x3e0 VOID (*HalPreprocessNmi)(ULONG arg1); //0x3e8 LONG (*HalEnumerateEnvironmentVariablesWithFilter)(ULONG arg1, UCHAR (*arg2)(struct _GUID* arg1, WCHAR* arg2), VOID* arg3, ULONG* arg4); //0x3f0 LONG (*HalCaptureLastBranchRecordStack)(ULONG arg1, struct _HAL_LBR_ENTRY* arg2, ULONG* arg3); //0x3f8 UCHAR (*HalClearLastBranchRecordStack)(); //0x400 LONG (*HalConfigureLastBranchRecord)(ULONG arg1, ULONG arg2); //0x408 UCHAR (*HalGetLastBranchInformation)(ULONG* arg1, ULONG* arg2); //0x410 VOID (*HalResumeLastBranchRecord)(UCHAR arg1); //0x418 LONG (*HalStartLastBranchRecord)(ULONG arg1, ULONG* arg2); //0x420 LONG (*HalStopLastBranchRecord)(ULONG arg1); //0x428 LONG (*HalIommuBlockDevice)(struct _IOMMU_DMA_DEVICE* arg1); //0x430 LONG (*HalIommuUnblockDevice)(struct _EXT_IOMMU_DEVICE_ID* arg1, struct _DEVICE_OBJECT* arg2, struct _IOMMU_DMA_DEVICE** arg3); //0x438 LONG (*HalGetIommuInterface)(ULONG arg1, struct _DMA_IOMMU_INTERFACE* arg2); //0x440 LONG (*HalRequestGenericErrorRecovery)(VOID* arg1, ULONG* arg2); //0x448 LONG (*HalTimerQueryHostPerformanceCounter)(ULONGLONG* arg1); //0x450 LONG (*HalTopologyQueryProcessorRelationships)(ULONG arg1, ULONG arg2, UCHAR* arg3, UCHAR* arg4, UCHAR* arg5, ULONG* arg6, ULONG* arg7); //0x458 VOID (*HalInitPlatformDebugTriggers)(); //0x460 VOID (*HalRunPlatformDebugTriggers)(UCHAR arg1); //0x468 VOID* (*HalTimerGetReferencePage)(); //0x470 LONG (*HalGetHiddenProcessorPowerInterface)(struct _HIDDEN_PROCESSOR_POWER_INTERFACE* arg1); //0x478 ULONG (*HalGetHiddenProcessorPackageId)(ULONG arg1); //0x480 ULONG (*HalGetHiddenPackageProcessorCount)(ULONG arg1); //0x488 LONG (*HalGetHiddenProcessorApicIdByIndex)(ULONG arg1, ULONG* arg2); //0x490 LONG (*HalRegisterHiddenProcessorIdleState)(ULONG arg1, ULONGLONG arg2); //0x498 VOID (*HalIommuReportIommuFault)(ULONGLONG arg1, struct _FAULT_INFORMATION* arg2); //0x4a0 UCHAR (*HalIommuDmaRemappingCapable)(struct _EXT_IOMMU_DEVICE_ID* arg1, ULONG* arg2); //0x4a8 LONG (*HalAllocatePmcCounterSetEx)(ULONG arg1, enum _KPROFILE_SOURCE* arg2, ULONG arg3, ULONG* arg4, struct _HAL_PMC_COUNTERS** arg5, ULONG* arg6); //0x4b0 LONG (*HalStartProfileInterruptEx)(enum _KPROFILE_SOURCE arg1, ULONG* arg2, ULONG* arg3, struct _HAL_PMC_COUNTERS** arg4); //0x4b8 LONG (*HalGetIommuInterfaceEx)(ULONG arg1, ULONGLONG arg2, struct _DMA_IOMMU_INTERFACE_EX* arg3); //0x4c0 VOID (*HalNotifyIommuDomainPolicyChange)(struct _DEVICE_OBJECT* arg1); //0x4c8 UCHAR (*HalPciGetDeviceLocationFromPhysicalAddress)(ULONGLONG arg1, USHORT* arg2, UCHAR* arg3, UCHAR* arg4, UCHAR* arg5); //0x4d0 VOID (*HalInvokeSmc)(ULONGLONG arg1, ULONGLONG arg2, ULONGLONG arg3, ULONGLONG arg4, ULONGLONG arg5, ULONGLONG arg6, ULONGLONG arg7, ULONGLONG* arg8, ULONGLONG* arg9, ULONGLONG* arg10, ULONGLONG* arg11); //0x4d8 VOID (*HalInvokeHvc)(ULONGLONG arg1, ULONGLONG arg2, ULONGLONG arg3, ULONGLONG arg4, ULONGLONG arg5, ULONGLONG arg6, ULONGLONG arg7, ULONGLONG* arg8, ULONGLONG* arg9, ULONGLONG* arg10, ULONGLONG* arg11); //0x4e0 union _LARGE_INTEGER (*HalGetSoftRebootDatabase)(); //0x4e8 }