Why Everyone Should Know a Little About the Structure of the Registry
I think it is worthwhile to take a look at the structure of the Registry even if you never intend to change a single comma in it. Total ignorance about what is actually in the Registry allows the imagination to assign mysterious and fearsome properties to something that is actually just a database. You need not remember any details but having once seen what is actually in the Registry, you will be psychologically better prepared to do the type of Registry operations that everybody should know- backing up and restoring. These functions are discussed on another page. You might even be intrigued enough to take advantage of the many useful system tweaks that are done with the many scripts that others have already written for you. These are discussed on another page.
The Registry Database and System Information
The Registry is a central store of information about the configuration of the computer. Every operating system has to have information about its hardware and software stored somewhere. There are various ways to store and keep track of this basic system data and Microsoft decided to use the particular method of the Registry. Other operating systems such as the Unix based varieties do it a different way but all computers systems have configuration data somewhere.
The configuration information is actually stored in binary form but almost no one accesses this data directly. Windows comes with an accessory called the Registry Editor and it provides the interface for actually inspecting the Registry. Using the Registry Editor is discussed in more detail on another page. Here, I will just indicate the broader outlines of how the configuration data is organized.
Types of Information in the Registry
The information that the computer system needs to have is divided into two main categories. One is general information about the computer itself. These are settings that apply system wide and includes the hardware on the system. This is named the Local Machine, The other general category consists of settings that are specific to each user account. and is labeled Users. The particular user who is logged on is called the Current User.
The Hierarchical Tree Structure
Information in the Registry is arranged in a tree-like system akin to folders and files. In the Registry, the containers for information are called "keys". These are analogous to folders. Keys can have subkeys just as folders can have subfolders. The name of data that is contained in a key is called a "value". This is something analogous to a file name. The actual data can have several formats and may be a string, a number, or a series of numbers.
|HKEY_CLASSES_ROOT||HKCR||Stores file association and COM object registration|
|HKEY_CURRENT_USER||HKCU||Stores data associated with the account currently logged on|
|HKEY_LOCAL_MACHINE||HKLM||Stores system-related information|
|HKEY_USERS||HKU||Stores information about all the accounts on the machine|
|HKEY_CURRENT_CONFIG||HKCC||Stores information about the current machine profile|
Just as the computer file and folder system has a root (usually a hard drive) the Registry has root keys at the top of the hierarchy of keys and values. I have mentioned the two general categories of information and these constitute two root keys. Unfortunately, we now have to deal with some Microsoft jargon. Table I shows the names that Microsoft uses. The names of root keys have "HKEY" tacked on the front. Although five root keys are used, three of them are really just subkeys or combinations of subkeys of the two main keys, HKLM and HKU. The additional root keys make programming easier.The abbreviations that are given are often used in writing scripts and INF files. To provide the flavor of what the Registry contains, Table II describes some subkeys for the root key HKEY_CURRENT_USER. There are several obsolete or very specialized keys that I have omitted.
|AppEvents||Associates sounds with events|
|Console||Command window settings|
|Control Panel||Screen saver, desktop scheme, keyboard and mouse settings. Accessibility and regional settings|
|Environment||Environment variable settings|
|Keyboard Layout||Keyboard layout settings|
|Network||Network drive mappings and settings|
|Printers||Printer connection settings|
|Software||User specific software preferences|
The tree structure of the Registry's information is partially shown in the figure on the left, The actual structure is very large with many branches but the figure shows a small portion with the root key HKEY_LOCAL_MACHINE expanded by one level to show the major keys under HKLM. In turn, each of these keys contains subkeys and values. Values and their data have addresses or paths that are similar to those used for folders and files. Although these addresses can be quite long, there is a system. An example of how information in the Registry is addressed is the branch of HKCU that contains many of the Windows settings appropriate to the user who is currently logged on. This subkey is: HKCU\Software\Microsoft\Windows\Current Version\.
More detail about the Registry structure is given at the next page.Speed Up Your PC: Optimize Your Computer's Performance in 3 Mins!