How Windows 2000 Manages Plug-and-Play ISA Devices

Microsoft Windows 2000 manages Plug-and-Play (PnP) Industry Standard Architecture (ISA) devices through an integrated subsystem composed of the ISA Plug-and-Play bus driver (Isapnp.sys), the core PnP Manager, and system resource arbiters. This article explains the technical mechanisms behind how Windows 2000 detects, isolates, resolves conflicts for, and dynamically configures legacy PnP ISA hardware without requiring manual jumper settings.

The ISA Plug-and-Play Bus Driver (Isapnp.sys)

The primary mechanism responsible for interacting directly with PnP ISA hardware is the driver Isapnp.sys. During the system boot process, this driver initiates the ISA PnP isolation protocol defined by the legacy Plug and Play ISA specification developed by Intel and Microsoft.

Because the traditional ISA bus lacks dedicated hardware lines for automatic device identification, Isapnp.sys operates via a standardized software-driven state machine:

  1. Initiation: The driver writes a predefined initiation key to the serial isolation register on the ISA bus to wake up all PnP-compliant ISA cards.
  2. Isolation: The driver executes an isolation protocol that reads the unique 64-bit serial identifier and product ID stored in each card's non-volatile ROM. Through a bit-by-bit arbitration process, individual cards are isolated from the bus one at a time.
  3. Card Assignment: Once isolated, Isapnp.sys assigns a unique Card Select Number (CSN) to each card, moving it into a configured state and separating it from unconfigured devices.

Device Enumeration and the PnP Manager

After assigning CSNs, Isapnp.sys acts as a bus driver for the Windows 2000 Plug and Play subsystem. It enumerates each card's logical devices and reads their resource requirements (such as required interrupt requests [IRQs], direct memory access [DMA] channels, I/O ports, and memory addresses).

Isapnp.sys converts this hardware information into standard Plug and Play resource descriptors and reports them to the Windows 2000 PnP Manager. The PnP Manager then queries the Windows Registry to locate or install the appropriate function drivers for the identified hardware IDs.

Resource Arbitration and Conflict Resolution

Unlike modern buses like PCI, the ISA bus features strictly limited, unshareable system resources. To prevent hardware collisions between non-PnP (legacy) ISA cards and PnP ISA cards, Windows 2000 employs system resource arbiters:

  • Arbitration: The PnP Manager consults resource arbiters for IRQ, I/O, DMA, and memory allocations.
  • Conflict Checking: If a manual, non-PnP ISA device has reserved specific resources (either configured manually in Device Manager or reported by the system BIOS via ACPI), the PnP Manager excludes those ranges.
  • Dynamic Programming: The PnP Manager selects a non-conflicting configuration from the available resource options reported by the card. It then instructs Isapnp.sys to write the assigned configurations directly into the card's onboard configuration registers.

Once resources are successfully routed and verified, the PnP Manager transitions the card into an active state and starts the corresponding device driver, allowing the operating system to communicate with the ISA hardware transparently.