Flylib.com

Books Software

 
 
 

Appendix D: Per-Computer Settings


Appendix D

Per-Computer Settings

In Appendix C, “Per- User Settings,” you learned about many of the settings that Microsoft Windows XP and Windows Server 2003 Server (Windows) create for users in the registry. These settings are in HKCU . This appendix is about the per-computer settings in HKLM .

The branch HKLM\SOFTWARE is similar to HKCU\Software . In fact, the organization of this key is almost identical. The difference is that these settings are computer-oriented; they affect every user who logs on to the computer. However, you find some settings in both places, HKLM\SOFTWARE and HKCU\Software . This is common with Microsoft Office 2003 Editions and many of the policies in Windows, for example. Most often, when a setting is in both places, the version in HKLM has precedence over the same setting in HKCU . Only when an administrator removes the setting from HKLM (restricted users don't usually have permission to change settings in HKLM ) do users' own preferences mean anything. The only exception to this rule is the file associations in SOFTWARE\Classes in both root keys. File associations in HKCU have precedence over file associations in HKLM . This order of precedence is necessary to enable users to have custom file associations.

Other branches in HKLM are unique, though. Windows stores the computer's configuration in HKLM\SYSTEM . The operating system's lower-level settings are in this branch, too. Lower-level settings include the configuration of the computer's network connections, device drivers, services, and so on. Windows also stores local security data in HKLM . Something else unique in HKLM is that it contains more links than HKCU does. Recall that links are aliases for other subkeys, and Windows uses links in HKLM to support features such as hardware profiles and configuration sets. This appendix describes these links so that you can better understand how different parts of the registry relate to each other.

This appendix outlines the organization of HKLM , describing its interesting and useful subkeys. But by no means do I cover this root key's entire contents. Instead, I've focused on settings that you're most likely to customize or need to understand as a power user or IT professional. Also, I don't describe the hive files or how Windows loads them into HKLM because Chapter 1, “Learning the Basics,” already covers this.



HARDWARE

Windows re-creates HKLM\HARDWARE every time the operating system starts. This key contains configuration data that the operating system detects when it starts. This branch contains few values to customize because the branch's contents are volatile. Some values in it are useful for inventorying the computer's hardware, though. For example, you can read its settings to inventory the computer's processor. You find this value and similar ones in HKLM\HARDWARE\DESCRIPTION , and they're easy-to-read REG_SZ values.

The following list is an overview of the HARDWARE key's subkeys, and the sections following this one give more details about some of them:

  • ACPI .

    This subkey describes the computer's ACPI BIOS. The values in this subkey are a bit cryptic.

  • DESCRIPTION .

    This is the most interesting subkey in HARDWARE . It describes the computer's BIOS, processors, and buses. (See the “DESCRIPTION” section.)

  • DEVICEMAP .

    This subkey maps the devices that the hardware recognizer detects to their device drivers in the SYSTEM branch of HKLM .

  • RESOURCEMAP .

    This subkey maps the computer's resources to the devices that use them. Like the ACPI subkey, this subkey is difficult to understand. Resources that the RESOURCEMAP subkey maps include bus number, DMA channels, interrupt vectors, memory ranges, and I/O ports.

TIP
You can use System Information to see the computer's hardware configuration and how Windows has been spending its resources. To use this feature, in the Run dialog box, type msinfo32 . The data that System Information displays is comprehensive. Especially helpful is that you can use it to look at remote computers' configurations. And it sure beats scrounging around the registry for the same information.

DESCRIPTION

Each time Windows boots, its hardware recognizer collects information about the computer's hardware and stores it in HKLM\HARDWARE\DESCRIPTION\System . In this branch, you find three subkeys:

  • CentralProcessor .

    This subkey contains one subkey for each CPU that the hardware recognizer finds on the computer. CentralProcessor\0 is the subkey for the first processor, CentralProcessor\1 is the second, and so on. Each subkey contains values that describe the processor. For example, the value ~MHz describes the approximate speed of the processor.

  • FloatingPointProcessor .

    This subkey contains one subkey for each FPU that the hardware recognizer finds on the computer. The organization is similar to that of CentralProcessor . Because Pentium-compatible processors contain onboard FPUs, this subkey usually corresponds to CentralProcessor .

  • MultifunctionAdapter .

    This subkey contains one subkey for each bus that the hardware recognizer detects. The subkeys are , 1 , and so on. Each subkey contains the REG_SZ value Identifier , which is a description of the bus: PCI and ISA. Below each bus's subkey are subkeys that describe the devices attached to the bus. This key describes only essential devices; it's not all-inclusive.

DEVICEMAP

The DEVICEMAP subkey is another interesting subkey of HKLM\HARDWARE . It maps the devices that the hardware recognizer detects to the services that drive them. Different device classes have different subkeys in D EVICEMAP . For example, this subkey typically contains the subkeys KeyboardClass and PointerClass . You don't find subkeys for every device in the computer, though. It contains subkeys only for those devices that Windows requires to start the computer. Thus, you don't find subkeys for sound cards and the like.

These subkeys contain one or more values. The values' names are the devices' names . The values' data points to the subkeys that define the services associated with those devices. For example, the subkey DEVICEMAP\KeyboardClass contains the value \Device\KeyboardClass0 , and its value is \REGISTRY\MACHINE\SYSTEM\ControlSet001\Services\Kbdclass . This indicates that the service driving the keyboard is in the registry, in HKLM, and in the branch SYSTEM\ControlSet001\Services\Kbdclass .