Geoff Chappell, Software Analyst
This page lists all the exports that were added to the HAL for version 6.0, i.e., for Windows Vista. One is exported only from the x64 builds (until version 10.0 makes it also an x86 export). Another doesn’t survive even to the first service pack, i.e., Windows Vista SP1 which is also Windows Server 2008. Five do not start until Windows Vista SP1.
Although this version brings by far the largest increase in exported functionality since the HAL’s creation, not even one of the new functions is documented. The one that is shaded orange below is at least declared in a WDK header file—and has been from the beginning. For roughly half, all highlighted orange, Microsoft published declarations—plausibly by mistake and evidently just the once so far—in the 1511 release of the WDK for Windows 10.
Function | Remarks |
---|---|
HalBugCheckSystem | separate declaration since 2009 for Windows 7 and higher |
HalConvertDeviceIdtToIrql | declared without version constraint |
HalDisableInterrupt | declared without version constraint |
HalDynamicProcessorStarted | discontinued in Windows Vista SP1 |
HalEnableInterrupt | declared without version constraint |
HalEnumerateEnvironmentVariablesEx | declared without version constraint |
HalEnumerateProcessors | x64 only; x86 also in 10.0 and higher |
HalGetEnvironmentVariableEx | declared without version constraint |
HalGetInterruptTargetInformation | declared without version constraint |
HalGetMessageRoutingInfo | declared without version constraint |
HalGetProcessorIdByNtNumber | begins in Windows Vista SP1; declared without version constraint |
HalGetVectorInput | declared without version constraint |
HalInitializeBios | |
HalInitializeOnResume | begins in Windows Vista SP1 |
HalQueryEnvironmentVariableInfoEx | begins in Windows Vista SP1; declared without version constraint |
HalQueryMaximumProcessorCount | begins in Windows Vista SP1 |
HalRegisterDynamicProcessor | begins in Windows Vista SP1 |
HalRegisterErrataCallbacks | |
HalSetEnvironmentVariableEx | declared without version constraint |
HalStartDynamicProcessor | |
x86BiosAllocateBuffer | |
x86BiosCall | |
x86BiosFreeBuffer | |
x86BiosReadMemory | |
x86BiosWriteMemory |
The one of these functions that has always been declared changed for version 6.1 to take two arguments instead of one. The original prototype, having started without a version constraint, was then left as declared for all versions earlier than Windows 7. Only in 2012 with the WDK for Windows 8 was it constrained to require at least Winodws Vista.