Previous | Next

Configuration Manager

To support Plug and Play functionality, Windows 98 architecture includes a component called Configuration Manager, which orchestrates the configuration process. This process might involve many bus and device architectures coexisting on a single system, with more than one device type using the same bus architecture, yet with each device having a separate set of configuration requirements. For example, a mouse and a keyboard can both use the same keyboard controller bus; a CD-ROM drive and a hard disk drive might both use the same SCSI bus.

As shown in Figure 28.10, Configuration Manager works with a number of subcomponents to identify each bus and each device on the system and to identify the configuration settings for each device. Configuration Manager ensures that each device on the computer can use an interrupt request (IRQ), I/O port addresses, and other resources without conflict with other devices.

Figure 28.10 How Configuration Manager works in Windows 98

Configuration Manager also helps monitor the computer for changes in the number and type of devices present, and manages the reconfiguration of the devices, as needed, when changes take place. As these events occur, Configuration Manager communicates the information to applications.

To perform its role, Configuration Manager (implemented as part of the Virtual Memory Manager [VMM32]) calls on the bus enumerators to identify all the devices on their specific buses and their respective resource requirements.

Bus enumerators are new drivers that are responsible for creating the Windows 98 hardware tree. A hardware tree is the hierarchical representation of all the buses and devices on a computer. Each bus and each device is represented as a node. Figure 28.11 graphically represents a hardware tree.

Figure 28.11 Example of a hardware tree

During the device enumeration process, the bus enumerator locates and gathers information from either the device drivers or the BIOS services for that particular device type. For example, the SCSI bus enumerator calls the SCSI drivers to gather information. (Some bus enumerators may instead check the hardware directly.)

A driver is loaded for each device. When loaded, the driver waits for Configuration Manager to assign specific resources (such as IRQs) to the device. Configuration Manager calls on resource arbitrators to allocate resources for each device.

Resource arbitrators resolve conflicts among devices that request identical resource assignments. Windows 98 provides arbitrators for the standard I/O, memory, hardware interrupt, and direct memory access (DMA) channel resources. (The arbitrators are separate components, rather than a part of Configuration Manager, to ensure extensibility to new types of resources, such as power allocation or automatic SCSI IDs.)

To complete the configuration process, Configuration Manager informs the device drivers about the device configuration. This process is repeated when the BIOS or one of the other bus enumerators informs Configuration Manager about an event that requires a change to the system configuration, such as the removal or insertion of a Plug and Play–compliant PC Card.

For more information about Plug and Play, see Chapter 24, "Device Management."