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)

Parent-child relationship

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

Page 15
Image 15
HP 752c (US/CAN) manual Acpi FDO