Plug and Play System Components

The Plug and Play framework defines a single object that has several attributes. This object is called a device node. One of its attributes identifies devices that provide resources (buses). The collection of device nodes that describes a computer is called the devnode tree.

The Plug and Play framework defines several software components that have been added to the operating system: Configuration Manager, enumerators, and resource arbitrators.

Enumerators build the devnode tree and may participate in configuring the devices on their bus. The enumeration process takes place every time the computer starts. There are two phases of enumeration in the current implementation of the operating system: BIOS POST, and protected-mode. At the end of the enumeration process, the devnode tree includes information about available system resources, required device drivers, and resource requirements.

Configuration Manager uses resource arbitrators to find a working resource allocation which satisfies the overall requirements of currently enumerated devices. Device drivers are then notified of their assigned configuration.

Windows 95 accommodates dynamic system events by broadcasting system messages to applications and device drivers. When an event such as the insertion or removal of a device occurs, applications and device drivers are notified. They can then take any required action or, in some cases, veto the configuration change.

The Plug and Play framework also uses and extends the registry and device information files (with the .INF filename extension).

The registry stores information about all devices ever installed on a particular machine, including devices that are not Plug and Play enabled (but detected when the operating system was installed), Plug and Play devices which have been located by an enumerator, device-specific state information, bindings of devices to device drivers, and data about the last known configuration, which is used to accelerate the allocation of resources.

The device information files contain information about known devices and their configurations. The system provides some class-information files (for example, SCSI.INF and MODEM.INF); others are provided by the device manufacturer. When a new device is detected or enumerated, all known .INF files are searched for entries matching the device ID. When a match is found, the appropriate files are copied and the required data is copied into a newly created registry entry.