I assume the hardware abstraction layer knows the particulars of the underlying hardware through ACPI tables. Are these tables updated by the BIOS? I assume the BIOS puts them in memory in a location the OS will be able to locate.
How does the hardware abstraction layer or hal.dll reliably know how to translate a generic driver instruction to something the firmware understands? How does it interface perfectly between x driver combinations and y device combinations, every time?