USB Hub FDO |
(usbhub.sys) |
USB Hub PDO |
(uhcd.sys or openhci.sys) |
LAN Adapter FDO |
(LAN adapter driver) |
LAN Adapter PDO |
(pci.sys) |
USB Host Controller FDO |
(uhcd.sys or openhci.sys) |
USB Host Controller PDO |
(pci.sys) |
PCI Bus FDO |
(pci.sys) |
PCI Bus Controller PDO |
(acpi.sys) |
ACPI FDO |
(acpi.sys) |
ACPI PDO |
(ACPI HAL) |
ACPI HAL FDO |
ACPI HAL PDO |
(PnP Manager) |
Attachment (FDO, PDO)
Logical device instance
Figure 2. Sample Windows 2000 Plug and Play device tree for an ACPI system
In Figure 2, a LAN adapter and a USB host controller plug into a PCI bus. A USB hub plugs into the sole port of the USB host controller. From a Plug and Play perspective, the PCI bus controller, the USB host controller, and the USB hub are bus devices because they each provide ports. The LAN adapter is not a bus device. The following discussion walks through the steps required to build the device tree shown in Figure 2. The example begins with the objects at the bottom of the stack.
1.ACPI HAL PDO and FDO. The ACPI HAL is detected during Setup, and the root enumerator creates a PDO for the ACPI HAL. The driver creates an FDO, and the ACPI HAL attaches it to the device stack for ACPI (shown by a curved arrow in Figure 2).
2.ACPI PDO and FDO. The ACPI HAL enumerates ACPI and creates a PDO for it. The Plug and Play Manager identifies Acpi.sys as the function driver for ACPI, loads the driver, and passes the PDO to the ACPI driver. The ACPI
Windows 2000 White Paper | 11 |