The Plug and Play framework makes it easy for computer users to add new hardware. Plug and Play prevents conflicts between devices, allows hot docking, and enables the enumeration of devices on the system. Plug and Play does not create a new device-driver model. It specifies a set of API elements that are used in addition to, not in place of, existing driver architectures.
The Plug and Play framework has the following goals:
Plug and Play devices will be capable of identifying themselves and declaring their services and resource requirements. This information will enable the operating system to determine and set a working configuration and load the appropriate device drivers without any user intervention. Installing a new device will be as easy as plugging it in and copying a file to the driver directory.
The Plug and Play framework allows hot docking of portable computers, and hot insertion of devices. When an insertion event occurs, the operating system will recognize the new device, its services, and its requirements, and load the necessary drivers. Applications will be notified about dynamic events so they can take advantage of the new functionality or stop using unavailable devices. The user is prompted only when the required resources are not available to the new device.
Specific components in the Plug and Play framework hide the lack of a device reporting mechanism for devices that are not Plug and Play enabled. Information about these devices is kept in the registry. Devices which cannot be configured using software receive first priority in resource allocation. When unresolvable conflicts occur, the configuration manager may be accessed via a smart user interface which leverages information such as .INF-format files to guide the user through device configuration options.
The Plug and Play framework defines several base components which can be implemented in any operating environment. Buses, devices, and resources are abstracted from the base components via hardware specific enumerators, arbitrators and device drivers. This ensures that this framework is extensible not only to other environments but also to future bus and device architectures.
The Plug and Play framework includes guidelines for BIOS, system, and hardware vendors on building Plug and Play compatible hardware. An integral part of this documentation is the ISA Plug and Play design specification that defines a complete hardware and firmware design for ISA devices. Similar schemes are supported by architectures such as PCMCIA, SCSI, and PCI. The common denominator for all hardware devices is the device node (Dev_Node) defined by this framework. Hardware vendors will need to ensure that their devices, driver disks, and systems provide sufficient information to populate their device nodes if they want them to be Plug and Play!