Plug and Play is both a design approach and a set of personal computer architecture specifications with the goal of making the personal computer, add-in hardware devices, drivers, and the operating system work together automatically without user intervention. In order to achieve this goal, all the components must be Plug and Play. The components of a Plug and Play system include:
Depending on whether any of these components are Plug and Play or not, the level of ease-of-use and dynamic operation varies. At the lowest level, where all three components are legacy, or not Plug and Play, the system lacks any dynamic operation and is difficult to use because card jumpers and switches need to be manually set and drivers manually loaded.
At the next level, when a Plug and Play operating system (such as Windows 98) is used with legacy hardware, the system supports dynamic operation of PCMCIA devices and is relatively easy to use.
Hardware setup is made simple by the Device Wizard (which helps to detect, identify, and configure devices), consistent user interface of device property sheets, and availability of device information through the registry and Device Manager. Additional ease-of-use is achieved due to automatic loading of drivers using the Device Installer, and due to smart software that reacts to configuration changes to give dynamic hardware event messages.
At the highest level, where all three components are Plug and Play, installing new devices is as easy as plugging them in and turning on the computer. Hardware setup is completely silent and transparent, and you do not need to modify expansion card jumper settings, or even modify operating system configuration files. Also, the system supports full dynamic operation, including hot docking, Advanced Power Management (APM) 1.1 power management, automatic configuration of boot devices, and programming of motherboard devices.
The registry is the backbone for Plug and Play specifications. It contains hardware-specific information so that when a user plugs a new piece of hardware into the computer, Windows 98 automatically configures the hardware device, or helps the user set it up with a Setup Wizard.
Windows 98 uses the device ID to search the INF files for that device. It then creates an entry in the HKEY_LOCAL_MACHINE key and copies information from the INF file into the key. Enum keys refer to the Windows 98 enumeration process that checks the hardware device. HKEY_CURRENT_CONFIG subkey Enum contains various subkeys (BIOS, Root, and so on) that specify Plug and Play BIOS or other elements. HKEY_DYN_DATA subkey Enum contains EISA: ISA Plug and Play bus. HKEY_DYN_DATA\ConfigManager\Enum defines the allocation of the resource, problems with the device, and configuration information.
The HKEY_LOCAL_MACHINE\Enum key contains subkeys for the specific hardware components used by the computer. Windows 98 uses this information to allocate resources, such as IO addresses and interrupts, for the devices. All values in the \Enum branch are vendor- and device-specific, so specific information can vary from machine to machine. The following list briefly describes entries in the \Enum subkey.
BIOS
This subkey contains entries for Plug and Play components of the BIOS (which includes timers, controllers, and direct memory access [DMA] chips). Each BIOS subkey starts with the string *PNP and is followed by a four-digit number that represents classes by which the components are grouped: *PNP0000. Each *PNPxxxx key contains subkeys (00, 01) that contain the data (such as class name, device description string, driver name, and hardware ID) for the device configuration. See Table 31.15 for more details.
ESDI
This subkey contains the configuration data of the IDE-controller used for hard disk drives and other devices.
FLOP
This subkey contains the configuration data of the floppy disk controllers used in the system.
HTREE
This subkey is reserved.
ISAPNP
This subkey contains entries for Plug and Play equipment enumerated on an ISA bus.
MF
This subkey defines manufacturer-specific information about hardware components.
Monitor
This subkey contains information about the monitor used in the system. If setup cannot detect the monitor type, the selection is set by the user.
Network
This subkey contains information about the network (for example, redirectors, services, and NetBEUI). The network adapter is specified in the Root\Net subkey.
PCI
This subkey contains entries for Plug and Play equipment on a peripheral component interconnect (PCI) bus.
Root
This subkey contains *PNPxxxx entries for legacy, non–Plug and Play hardware, such as the CPU, BIOS, network adapters, and printer drivers.
SCSI
This subkey contains configuration data for small computer system interface (SCSI) devices.
Table 31.15 \Enum\BIOS values for Plug and Play components
Value | Description | ||||
---|---|---|---|---|---|
PNP0000 – PNP0004 | Interrupt controllers | ||||
PNP0100 – PNP0102 | System timers | ||||
PNP0200 – PNP0202 | DMA controllers | ||||
PNP0300 – PNP0313 | Keyboard controllers | ||||
PNP0400 – PNP0401 | Printer ports | ||||
PNP0500 – PNP0501 | Communication ports | ||||
PNP0600 – PNP0602 | Hard disk controllers | ||||
PNP0700 | Standard floppy disk controller | ||||
PNP0800 | System speaker | ||||
PNP0900 – PNP0915 PNP0930 – PNP0931 PNP0940 – PNP0941 |
Display adapters | ||||
PNP0A00 – PNP0A04 | Expansion buses | ||||
PNP0B00 | CMOS real-time clock | ||||
PNP0C01 | System board extension for Plug and Play BIOS | ||||
PNP0C02 | Reserved | ||||
PNP0C04 | Numeric data processor | ||||
PNP0E00 – PNP0E02 | PCMCIA controllers | ||||
PNP0F01 | Serial Microsoft mouse | ||||
PNP0F00 – PNP0F13 | Mouse ports | ||||
PNP8xxx | Network adapters | ||||
PNPA030 | Mitsumi CD-ROM controller | ||||
PNPB0xx | Miscellaneous adapters |
Plug and Play codes are grouped in classes according to their four-digit code. You can view and modify the device configuration used on your computer with Device Manager, which is located under the System option in the Control Panel.
Detection and enumeration are the two processes that Windows 98 uses to configure devices. Detection is the process Windows 98 uses during its search for legacy or non-Plug and Play devices on a computer. Detection is used during Windows 98 Setup and any time you use the Add New Hardware Wizard to search for new hardware installed in your computer. Detection does not run each time you start Windows 98. During the detection process, Windows 98 creates a log file called Detlog.txt in the root directory of the boot drive. This file is commonly referenced when troubleshooting problems with hardware detection.
Enumeration is the process Windows 98 uses to identify Plug and Play devices in your computer, including those devices on Plug and Play buses, such as ISAPNP, PCI, and PC Card (PCMCIA) devices. Enumeration occurs each time Windows 98 starts and whenever Windows 98 receives notification that a change has occurred in the computer’s hardware configuration, such as when you remove a PC Card.