![](/images/new-backgrounds/1270151/27015123x1.webp)
ULYHUadditional/D\HUVsecurity checks.
For a given device, there are two or more driver layers: a bus driver for the underlying I/O bus (or the Plug and Play Manager for
A driver creates a device object for each device that it controls; the device object represents the device to the driver. From the Plug and Play perspective, there are three kinds of device objects: physical device objects (PDOs), functional device objects (FDOs), and filter device objects. PDOs represent a device on a bus; every Plug and Play API that refers to a device refers to the PDO. FDOs represent the functionality of a device to a function driver. Filter device objects represent a filter driver as a hook to add value. These three kinds of device objects are all of the type DEVICE_OBJECT, but are used differently and can have different device
$extensions.GGLWLRQDO:LQGRZV,QWHUIDFHV
Windows 2000 Plug and Play drivers are not limited to using the WDM interfaces. Drivers can call other interfaces to support legacy Windows NT drivers, detection, or other
Notice that a driver that supports features specific to Windows NT is no longer compatible with Windows 98. If a driver will be used under both Windows NT and :'0Windows%XV98,only'ULYHUVWDM interfaces can be used.
Bus power management and Plug and Play are controlled by WDM bus drivers, which are standard WDM drivers that expose bus capabilities. In this context, any device from which other devices are enumerated is referred to as a bus. A bus driver responds to new Plug and Play and power management I/O request packets (IRPs) and can be extended using filter drivers.
The bus driver is primarily responsible for the following:
∙Enumerating the devices on its bus.
∙Reporting dynamic events on its bus to the operating system.
∙Responding to Plug and Play and power management IRPs.
∙Multiplexing access to the bus (for some buses).
∙Generically administering the devices on its bus.
During enumeration, a bus driver identifies the devices on its bus and creates device objects for them. The method that a bus driver uses to identify connected devices depends on the particular bus.
Windows 2000 White Paper | 8 |