Control Sets in the Registry

A control set contains system configuration information, such as which device drivers and services to load and start. Control sets are stored in the Registry as subkeys of HKEY_LOCAL_MACHINE\SYSTEM. There can be several control sets, depending on how often you change system settings or have problems with the settings you choose. A typical installation of Windows NT contains these control set subkeys:

The CurrentControlSet subkey is a pointer to one of the ControlSet00x keys. The Clone control set is a clone of the control set used to initialize the computer (either Default or LastKnownGood), and is created by the Kernel initialization process each time you start your computer. The Clone control set is not available after a user logs on.

In order to better understand how these control sets are used, you should know about the Registry subkey HKEY_LOCAL_MACHINE\SYSTEM\Select, which contains the following values:

Each of these values contain a REG_DWORD data type, which refers to a specific control set. For example, if the Current value is set to 0x1, then CurrentControlSet is pointing to ControlSet001. Similarly, if LastKnownGood is set to 0x2, then the Last Known Good control set is ControlSet002. The Default value is usually the same value as Current. Failed is the control set that was pointed to by Default when a user last started the computer by using the LastKnownGood control set.

The section titled "Selecting the Configuration to Use," presented earlier in this chapter, describes initializing Windows NT by using either the Default configuration or the LastKnownGood configuration. When you select the Default configuration, the Kernel uses the value of Default to determine which control set to use.

There are only two times when the Kernel attempts to load the LastKnownGood configuration:

Starting by using the LastKnownGood control set provides a way to recover from problems such as:

The LastKnownGood option is useful only in cases of incorrect configurations. It does not solve problems caused by corrupted or missing device drivers or files.

Important

If you select the Last Known Good Configuration, any configuration changes made during the last system boot are lost.

Once you have logged on, the CurrentControlSet is that one that is changed whenever you make changes to your configuration by using options in Control Panel. If you are manually editing a control set for some reason, the CurrentControlSet is the only one that you should change.

If you are not sure where to look under the CurrentControlSet for a particular key, you can use Find Key on the View menu of the Windows NT Registry Editor. Each control set contains two subkeys: Control and Services. Control contains miscellaneous system information, such as the size and location of the page file. Services contains device driver information, such as file system drivers, Kernel drivers, and status information for each.

Note

There are two Registry Editor programs on the Windows NT Workstation product CD, Regedt32.exe and Regedit.exe. You can use either one to view the Registry.