Microsoft supplies the ACPI driver as part of the operating system. On systems that have an ACPI BIOS, the HAL causes the ACPI driver to be loaded during system start-up at the base of the device tree, where the driver acts as the interface between the operating system and the BIOS. The ACPI driver is transparent to other drivers.
The ACPI driver's responsibilities include support for PnP and power management. For example, ACPI tasks on a system might include reprogramming the resources for a COM port or enabling the USB controller for system wake-up.
For each device described in the ACPI namespace (part of the ACPI BIOS set up by the hardware vendor), the ACPI driver creates either a filter device object (filter DO) or a physical device object (PDO). If the device is integrated into the system board, the driver creates a filter device object, representing an ACPI bus filter, and attaches it to the device stack immediately above the bus driver (PDO). For other devices described in the ACPI namespace but not on the system board, ACPI creates the PDO. ACPI provides power management and PnP features to the device stack by means of these device objects.
The devices for which ACPI creates a device object vary from one system to the next, depending on the machine's BIOS and the configuration of the motherboard. Note that an ACPI bus filter is loaded only for devices that are described in the ACPI namespace and integrated into the system board. Not all motherboard devices have an ACPI bus filter.
All ACPI functionality is transparent to higher-level drivers. Drivers must make no assumptions about the presence or absence of an ACPI filter in any given device stack.
Build date: 12/5/2013