- Microsoft defines the registry as a central repository for configuration data. In layman's terms, it's a database for configuration files. The data is structured much like an outline, and is stored in hierarchical order as pairs and assigned a name and value. The registry keeps tabs on the software you install and controls how it interacts with one another, such as telling a software which font to use or how many icons should be on the desktop.
- The XP registry is composted of five branches. Each of these branches are keys that hold subkeys and values making up the registry's data. These are:
HKEY_CLASSES_ROOT: Holds information needed for internal functions. Functions include, object embedding and linking, and both the copy/paste and drag/drop abilities. It is also holds the file associations that determines which program opens when you click on an icon. This is the most difficult branch to edit and is best left alone.
HKEY_CURRENT_USER: This tracks which user is logged in and holds all data for that user, such as desktop backgrounds and colors. It also holds any customized programs for this user.
HKEY_LOCAL_MACHINE: Holds information on the programs installed on the computer, this is not in correlation with specific users. Any changes made in this section will apply to all users. Stored in this section is the configuration files for all programs, including Windows.
HKEY_USERS: Holds individual configuration settings and contains options for all created users. It identifies each user by their user security code assigned at creation of each user.
HKEY_CURRENT_CONFIG: This branch is connected to HKEY_LOCAL_MACHINE and specifies settings for hardware and software that apply to every user. - There are five main value types within the branches:
REG_DWORD: These values are shown in hexadecimal format and use a 4 byte number as data. The decimal equivalent is shown in brackets next to this and either format can be used to enter data.
REG_SZ: Represents data as a string of characters. Data can be words, numbers or file locations.
REG_EXPAND_SZ: This is a string value. When a user or application puts in a value, this acts as a variable.
REG_MULTI_SZ: This string contains multiple values and lists.
REG_BINARY: Values in this registry are held as binary data. Hardware information in this registry is not to be changed or or accessed by users.