What is the Windows Registry

So what exactly is the Windows Registry and why is it so crucial to PC optimization?

The Windows Registry is like the brain of the the Windows operating system. To simplify this, the Registry is a huge database of settings and options for the operating system which contains information and settings for all the hardware, most non-operating system software, operating system software, users, preferences of the PC, and various other settings.

If you make any edits within your Control Panel settings, file associations, system policies, or installed software, these changes are actually stored within the Registry. The registry also provides a window into the operation of the kernel, exposing runtime information such as performance counters and currently active hardware.

Since so much data is stored in the Registry, it is very easy for the Registry to become cluttered with invalid keys, corrupt entries and unwanted data. As the Registry gets larger, your system performance will begin to suffer. For this reason, it is vital to always keep your Registry clean and error free.

Below is a further description of how the Registry is organized:

Registry Keys

Registry Keys are similar to folders - in addition to values, each key can contain subkeys, which may contain further subkeys, and so on. Keys are referenced with a syntax similar to Windows' path names, using backslashes to indicate levels of hierarchy.

HKEY_CLASSES_ROOT Points to branch of Hkey_Local_Machine that describes certain software settings. This key displays the same data as it did in Windows 3.1 - essential information about OLE and association mappings to support drag-and-drop operations, Windows 95 shortcuts (which are, in fact, OLE links), and core aspects of the Windows 95 user interface.
HKEY_CURRENT_USER This key points to a branch of Hkey_Users for the user who is currently logged on
HKEY_LOCAL_MACHINE Contains computer-specific information about the type of hardware installed, software settings, and other information. This information is used for all users who log on to this computer
HKEY_USERS Contains information about all the users who log on to the computer, including both generic and user-specific information. The generic settings are available to all users who log on to the computer. The information is made up of default settings for applications, desktop configurations, and so on. This key contains sub keys for each user that logs on to this computer
HKEY_CURRENT_CONFIG Points to a branch of Hkey_Local_Machine\Config that contains information about the current configuration of hardware attached to the computer
HKEY_DYN_DATA Points to a branch of Hkey_Local_Machine that contains the dynamic status information for various devices as part of the Plug and Play information. This information may change as devices are added to or removed from the computer. The information for each device includes the related hardware key and the device's current status, including problems

Registry Value Types

Registry Values are name/data pairs stored within keys. Values are referenced separately from keys. Value names can contain backslashes which would lead to ambiguities were they referred to like paths.

Value Types
REG_NONE No type
REG_SZ A constant string value
REG_EXPAND_SZ An "expandable" string value that can contain environment variables
REG_BINARY Binary data (any arbitrary data)
REG_DWORD / REG_DWORD_LITTLE_ENDIAN A DWORD value, a 32-bit unsigned integer (numbers between 0 and 4,294,967,295 [232 - 1]) (little-endian)
REG_DWORD_BIG_ENDIAN A DWORD value, a 32-bit unsigned integer (numbers between 0 and 4,294,967,295 [232 - 1]) (big-endian)
REG_LINK Symbolic link (UNICODE)
REG_MULTI_SZ A multi-string value, which is an array of strings
REG_QWORD / REG_QWORD_LITTLE_ENDIAN A QWORD value, a 64-bit integer (either big- or little-endian, or unspecified)