Plug and Play
Plug and Play
technology provides a
combination of software and hardware support that enables
the Windows operating system to detect and configure hardware with little or no
user involvement. Plug and Play makes it easier to add and configure hardware
on a computer running Microsoft Windows Server 2003 without the user
needing special knowledge about hardware configurations. Plug and Play in
Windows Server 2003 supports a wide range of device types.
The Plug and Play
framework defines several base components that can be implemented in any
environment. Buses, devices, and resources are abstracted from the base
components via hardware-specific enumerators, arbitrators, and device drivers.
This ensures that the framework is extensible not only to other environments
but to future bus and device architectures.
In
Windows Server 2003, Plug and Play provides the following services.
- Detection
of a Plug and Play device
- Determination
of hardware resource requirements
- Determination
of device identification number
- Allocation
of hardware resources
- Dynamic
loading, initialization, and unloading of drivers
- Notification
to other drivers and applications when a new device is available
- Coordination
with power management components to install and remove devices
Some bus types, such
as Peripheral Component Interconnect (PCI) and USB, take full advantage of Plug
and Play. Older bus types, such as ISA, do not take full advantage of Plug and
Play and require more user interaction to ensure that devices are correctly installed.
After
Windows Server 2003 detects a Plug and Play device, the device driver
is configured and loaded dynamically, typically without requiring user input.
The following diagram
shows the Plug and Play states of a device after initialization.
Plug and Play Device States
The following table
describes the Plug and Play states for a device.
Plug and Play Device States
|
State
|
Description
|
|
Start State
|
After it has assigned all necessary hardware resources
to the device, the Plug and Play Manager sends an I/O request packet (IRP)
indicating that all drivers for the device have performed their start
operations. The device may have been recently enumerated and is being started
for the first time, or the device may be restarting after being stopped for
resource rebalancing.
|
|
Remove-Pending State
|
The Plug and Play Manager sends a requests to the
drivers to remove a device’s software representation (device objects, and so
forth). The Plug and Play Manager sends this IRP when a device has been
removed in an orderly fashion (for example, initiated by a user in the Unplug
or Eject Hardware program), when a device has been removed by surprise (a
user pulls the device from its slot without prior warning), or when the user
makes a request to update drivers.
|
|
Surprised-Removed State
|
The Plug and Play Manager sends a request to notify
drivers that a device is no longer available for I/O operations and has
probably been unexpectedly removed from the machine. In response to this
request, the drivers power off the device and perform additional removal
processing.
|
|
Stop-Pending State
|
The Plug and Play Manager sends a request asking
whether the drivers for a device can stop the device. If all the drivers in
the device stack return a confirmation, the drivers put the device into a
stop-pending state, from which the device can be stopped quickly.
|
|
Stopped State
|
Plug and Play Manager requests that drivers for a
device driver hold IRPs that require access to the device.
|
Common
Plug and Play Scenarios
Plug and Play works
automatically by default on computers running Windows Server 2003.
The following are the most common scenarios in which Plug and Play is used.
Adding new hardware to a computer
In
Windows Server 2003, Plug and Play installs most hardware devices
that can be loaded at a time other than during the system startup process. If
the hardware is compliant with Plug and Play, Windows Server 2003
will automatically detect and configure the new hardware once it is connected
to the system. Plug and Play devices are capable of identifying themselves and
declaring their services and resource requirements to the operating system.
This information enables Windows Server 2003 to determine and set a
working configuration, then load the appropriate device drivers without user
intervention.
Docking a mobile computer
The Plug and Play framework allows docking of mobile computers and insertion of devices while the computers are running. When such a connection occurs, Windows Server 2003 will recognize that a device is connected, recognize the services and requirements, and load the necessary drivers. Applications are notified about dynamic events so that they can take advantage of new functionality or start using available devices.
Technologies Related
to Plug and Play
In
Windows Server 2003, Plug and Play support is optimized for computers
that include an Advanced Configuration and Power Interface (ACPI) BIOS. ACPI
devices are defined by the Advanced Configuration and Power Interface (ACPI)
Specification, a hardware and software interface specification that combines
and enhances the Plug and Play and Advanced Power Management (APM) standards.
ACPI devices include low-level system devices such as batteries, thermal zones,
and other devices defined in a system’s ACPI namespace, a
hierarchical namespace that an ACPI BIOS uses to reference objects. ACPI shifts
many power management tasks to the operating system and provides the following
features.
- Automatic
and dynamic recognition of installed hardware
- Hardware
resource allocation and reallocation
- Loading of
appropriate drivers
- Interface
for driver interaction with the Plug and Play system
- Dynamic
handling of device management and power management events
Note
- For all
Plug and Play features to work, a system must include an ACPI-compliant
BIOS that works with the ACPI to provide reliable power management and
system configuration.
Related
Information
The following
resources contain additional information that is relevant to this section.
- “Microsoft
Windows Driver Development Kits” on the Microsoft Web site
Comments