HKEY_LOCAL_MACHINE\HARDWARE Subtree

The HKEY_LOCAL_MACHINE\HARDWARE subtree contains the hardware data in the Registry that is computed at system startup. This includes information about hardware components on the system board and about the interrupts hooked by specific hardware devices.

The Hardware subtree contains distinct and important sets of data in three subkeys — Description, DeviceMap, and ResourceMap. These keys are described in the following sections.

All information in HKEY_LOCAL_MACHINE\HARDWARE is volatile, which means that the settings are computed each time the system is started and then discarded when the system is shut down. Applications and device drivers use this subtree to read information about the system components, store data directly into the DeviceMap subkey, and store data indirectly into the ResourceMap subkey.

Tip

Do not try to edit the data in HKEY_LOCAL_MACHINE\HARDWARE; much of the information appears in binary format, making it difficult to decipher.

To view data about a computer's hardware in an easy-to-read format for troubleshooting, run Windows NT Diagnostics, and choose the Devices button. Windows NT Diagnostics extracts the information from the Registry and renders it in a more readable format.

Description Subkey

The Description subkey under HKEY_LOCAL_MACHINE\HARDWARE displays information from the hardware database built by the firmware, the Hardware Recognizer (NTDETECT.COM), and the Executive itself, which manages the interface between the Kernel and the environment subsystems:

The Hardware Recognizer for x86-based computers detects the following items:

Bus/adapter type

Video adapter

Keyboard

Floating point coprocessor

SCSI adapters

Mouse

Communication ports

Floppy drives

Machine ID

Parallel ports


Note Network adapter cards are not detected as part of startup but are instead detected during Windows NT Setup or if you double-click the Network icon in Control Panel to install a new network adapter. For details, see "Network Settings in the Registry," later in this chapter.

HKEY_LOCAL_MACHINE\HARDWARE\Description\System\MultifunctionAdapter contains several other subkeys, each corresponding to specific bus controllers on the local computer. Each of these subkeys describes a class (or type) of controller, including controllers for disk drives, display, keyboard, parallel ports, pointing devices, serial ports, and SCSI devices. The subkey's path describes the type of component. The numbering for hardware components is 0-based, which means that, for example, the first (or only) disk controller appears under the 0 subkey.

The name of the MultiFunctionAdapter subkey depends on the bus type. For example, the subkey name for ISA and MCA buses appears as MultiFunctionAdapter. For EISA buses, the subkey name is EisaAdapter, and for TurboChannel buses, the subkey name can be TcAdapter.

For each detected hardware component, the optional Component Information and Configuration Data value entries store version and configuration data in binary format. The Identifier entry contains the name of a component, if specified. For details about these entries, see "Registry Entries for Device Drivers" in Chapter 14, "Registry Value Entries."

DeviceMap Subkey

Under HKEY_LOCAL_MACHINE\HARDWARE\DeviceMap, each Device subkey contains one or more values to specify the location in the Registry for specific driver information for that kind of component.

The following illustration shows an example of the DeviceMap subkey and the value entry for a selected device name.

The value for each Device subkey describes an actual port name or the path for a Service subkey in HKEY_LOCAL_MACHINE\SYSTEM\ControlSetnnn\Services, which contains information about a device driver. That Service subkey contains the information a system administrator might need for troubleshooting and is also the information presented about the device by Windows NT Diagnostics.

The following shows DeviceMap entries for a computer that has multiple SCSI adapters.

ResourceMap Subkey

The ResourceMap subkey under HKEY_LOCAL_MACHINE\HARDWARE maps device drivers to resources that the drivers use. Each ResourceMap subkey contains data reported by the device driver about its use of I/O ports, I/O memory addresses, interrupts, DMA channels and so on. The data in the ResourceMap subkey is volatile, so this subkey is recreated each time you start Windows NT.

Under the ResourceMap subkey, there are DeviceClass subkeys for the general class (or type) of devices. Each of these subkeys contains one or more DriverName subkeys with information about a specific driver. For example, in the following illustration, Sermouse is the DriverName subkey under the PointerPort DeviceClass subkey. (The driver names in these subkeys match the services listed in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.)

Tip If you need to resolve resource conflicts, use Windows NT Diagnostics to view the data from these subkeys in an easily readable format.