Boot Options: detecthal

The detecthal option directs the loader to detect which kernel and Hardware Abstraction Layer (HAL) to load.


To have the BCDEDIT tool set the detecthal option for the currently running operating system, run the command

bcdedit /set detecthal boolean 

where boolean is one of 1, on, yes or true.

To set this option at the Edit Boot Options Menu, add /detecthal.


The detecthal option forces the loader to choose from a hard-coded selection of possible HALs and kernels, overriding any alternative specifications in hal or kernel options.

The chosen HAL is:

halmacpi.dll if the ACPI description tables include a Multiple APIC Description Table
halacpi.dll otherwise

The test for choosing HALMACPI.DLL requires the Advanced Configuration and Power Interface (ACPI). A Root System Description Pointer (RSDP) must be present either in the Extended BIOS Data Area or in the 128KB at physical address 0x000E0000. From this must be found either a Root System Description Table (RSDT) or preferably an Extended System Description Table (XSDT). Each points the way to other description tables. If one of these has the ‘APIC’ signature expected for a Multiple APIC Description Table, then the loader chooses HALMACPI.DLL.

The chosen kernel is:

ntkrnlpa.exe if using PAE
ntoskrnl.exe otherwise

Whether the loader, and thence the kernel, uses Physical Address Extension (PAE) depends on the pae and nx options.