Most driver writers will not write enumerators. However, most drivers will be loaded as the result of an enumerator identifying a hardware device. Enumerators are also responsible for configuring devices on the relevant bus.
The following sections discuss some specific enumerators.
The root enumerator is part of Configuration Manager. This enumerator contains no special detection logic and relies on the registry to determine whether a device exists. If there is an entry in the registry, the root enumerator assumes that it exists and the appropriate drivers are loaded. This is the method by which old hardware is supported, since it is usually impossible to determine with complete accuracy and safety that a particular ISA card is installed.
The BIOS enumerator is responsible for identifying all hardware devices on the motherboard of the computer. The BIOS enumerator supports the Plug and Play BIOS API which allows all Plug and Play computers to be queried in a common manner.
This enumerator uses the ISA Plug and Play card detection mechanism to detect with complete accuracy and safety any ISA Plug and Play-compliant cards in the system.
This enumerator uses the PCI BIOS and the PCI device configuration space to detect and configure any PCI-compliant cards in the system.
This enumerator uses a Socket Services driver to determine whether a PCMCIA cards is inserted in each socket in the system, and for those which are present, the tuple space of the card is read to identify which card is inserted and what resources are required.
This enumerator queries the EISA CMOS to discern which EISA devices are installed and what resources they consume. This enumerator will not reconfigure EISA devices.
This enumerator follows the Plug & Play COM specification for identifying compliant devices attached to a serial port.
This enumerator uses the IEEE P1284 specification for identifying devices attached to P1284-capable parallel ports.