A Closer Look at HKEY_CURRENT_CONFIG for Windows NT
At startup, when multiple profiles are used in NT, the Last Known
Good menu is automatically engaged, giving you the option of selecting
which profile you would like to use. HKEY_CURRENT_CONFIG
is the handle key representing the current hardware profile chosen
at startup.
Depending on the choice of profiles, one of the Registry hardware
profile entries will be chosen. When that profile is loaded into
the system, it will be loaded into both HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Hardware
Profiles\Current and also into HKEY_CURRENT_CONFIG.
Figure D.1 shows the results of the mapping.
Figure D.1. HKEY_LOCAL_COMPUTER
maps information directly to HKEY_CURRENT_CONFIG.
After the system is started, any change to either location automatically
updates the other. HKEY_CURRENT_CONFIG is used to make
access to the configuration information easier for programmers.
HKEY_CURRENT_CONFIG includes all of the details of the
profile that is actually current in the system. The choice made
during startup affects which of the two (or more) hardware profiles
is current. For example, if Profile 0002 had been chosen, all
of the Profile 0002 information would have been mapped into these
keys.
All of the settings in this appendix appear in the following
format:
Key Name
Full path=Handle Key\Keyname
Description, specific information, values
Second-Level Key Name
Full path=Handle Key\Keyname\Keyname
Description, specific information, values
Third-Level Key Name
Full path=Handle Key\Keyname\Keyname\Keyname
Description, specific information, values
Additional Level Key Names
Full path=Handle Key\Keyname\Keyname\Keyname\Keyname(\Keyname)
Description, specific information, values
Software
HKEY_CURRENT_CONFIG\Software
Without any software difference between the available profiles,
there is nothing listed here. If the selected profile included
software specific to hardware that was only present during this
profile, it would be listed here. That is extremely rare. In nearly
all cases, the Software entry is here for future expansion
possibilities, particularly when full Plug and Play is implemented
in Windows NT.
System
HKEY_CURRENT_CONFIG\System
This key holds all the subkeys for settings that are unique to
the currently installed profile.
CurrentControlSet
HKEY_CURRENT_CONFIG\System\CurrentControlSet
This key holds subkeys for Control, Enum, and Services.
Control
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control
Availability of the Control Panel functions might be different
depending on the hardware activated. If there is a difference,
it is listed here.
Class
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\Class
Different icons for the Control Panel are listed here if necessary.
Enum
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Enum
This key holds information about additional buses that might
be available in a hardware profile. For example, a docking station
that includes a separate bus would be listed and configured here.
Services
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Services
Any differences in loaded drivers based on the hardware profile
are listed as subkeys to this key.
s3
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Services\s3
This video driver is different because it can run a higher default
resolution with a different monitor. Those settings are in the
following key:
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Services\s3\Device0
Summary
HKEY_CURRENT_CONFIG allows software and device-driver
programmers to easily update the Registry, without concern for
multiple profile information. The same data is in HKEY_LOCAL_MACHINE,
and any Registry change will update both locations simultaneously.