HAL Exports Added For Version 5.0

This page lists the five exports that were added to the Windows HAL for version 5.0, i.e., for Windows 2000. They are exported only from the x86 builds. All are still exported as of version 10.0, but starting with version 6.2 they are exported only as forwards to the kernel (which is where all versions of 64-bit Windows export them from).

Documentation status is summarised by colour coding. (Had the website’s scripts run as expected, then hovering over any colour-coded text would produce a tooltip that shows why the text is coloured.) (To decode a colour, hover for a tooltip.)

Functions that appear to be completely undocumented are highlighted yellow. If a function is documented now but was not documented in the first contemporaneous Device Driver Kit (DDK), Windows Driver Kit (WDK) or Installable File System (IFS) Kit, then it is shaded yellow to retain some of its previous status. If a function is documented as reserved or obsolete, it is shaded red or shaded grey, respectively. Otherwise, functions that have their own non-trivial documentation are left with no background colour.

Many undocumented functions and some variables have C-language declarations in one or another header file. To show them as being not completely undocumented they are shaded orange, except for one special case. Some declarations are known only from “minwin” headers that Microsoft published in early editions of the WDK for Windows 10 which seem since to have been withdrawn. These are highlighted orange to indicate that public disclosure even of the declaration was exceptional.

Name Export History Documentation History Declaration History
KeAcquireQueuedSpinLock x86 only;
since 6.2, forwarded to kernel
before 5.1 (IFS) to 6.0, undocumented declared start is 5.1
KeAcquireQueuedSpinLockRaiseToSynch x86 only;
since 6.2, forwarded to kernel
   
KeReleaseQueuedSpinLock x86 only;
since 6.2, forwarded to kernel
before 5.1 (IFS) to 6.0, undocumented declared start is 5.1
KeTryToAcquireQueuedSpinLock x86 only;
since 6.2, forwarded to kernel
before 5.1 (IFS) to 6.0, undocumented declared start is 5.1
KeTryToAcquireQueuedSpinLockRaiseToSynch x86 only;
since 6.2, forwarded to kernel
   

The first documentation known to this study is for the IFS Kit as included with the WDK for Windows Vista. Each has its own page just to say that the function is reserved. None of the functions is even declared in the IFS Kit for Windows 2000, but I cannot discount that they were documented in an IFS Kit for Windows XP (this having not been obtained for reference) or were at least declared.

Queued spin locks have x64 support as exports from the kernel. Eventually, the x86 implementations were moved to the kernel too, so that the HAL itself retains no implementation.