What is a Registry Value?

Explanation of the Different Types of Registry Values

Screenshot of lots of registry values in the Windows 10 Registry Editor
Registry Values (Windows 10).

The Windows Registry is full of objects called values that contain specific instructions that Windows and applications refer to.

Many kinds of registry values exist, all of which are explained below. They include string values, binary values, DWORD (32-bit) values, QWORD (64-bit) values, multi-string values, and expandable string values.

Where Are Registry Values Located?

Registry values can be found all throughout the registry in Windows 10, Windows 8, Windows 7, Windows Vista, and Windows XP.

In Registry Editor are not only registry values but also registry keys and registry hives. Each of these objects are like folders and are seen on the left side of Registry Editor. Registry values, then, are a bit like files that are stored inside these keys and their "subkeys."

Selecting a subkey will show all of its registry values on the right side of Registry Editor. This is the only place in the Windows Registry where you'll see registry values - they aren't ever listed on the left side.

Here are just a few examples of some registry locations, with the registry value in bold:

  • HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS\BIOSVendor
  • HKEY_CURRENT_USER\Environment\TEMP
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CurrentUser

In each example, the registry value is the entry to the far right. Again, in Registry Editor, these entries are shown as files on the right side. Each value is held in a key, and each key originates in a registry hive (the far left folder above).

This exact structure is maintained throughout the entire Windows Registry without exception.

Types of Registry Values

There are several different types of registry values in the Windows Registry, each created with a different purpose in mind. Some registry values use regular letters and numbers that are easy to read and understand, while others use binary or hexadecimal to express their values.

String Value

String values are indicated by a small red icon with the letters "ab" on them. These are the most commonly used values in the registry, and also the most human-readable. They can contain letters, numbers, and symbols.

Here's an example of a string value:

HKEY_CURRENT_USER\Control Panel\Keyboard\KeyboardSpeed

When you open the KeyboardSpeed value at this location in the registry, you're given an integer, like 31.

In this particular example, the string value defines the rate at which a character will repeat itself when its key is held down. If you were to change the value to 0, the speed would be much slower than if it were to remain at 31.

Every string value in the Windows Registry is used for a different purpose depending on where it's located in the registry, and each will perform a particular function when defined at a different value.

For example, another string value located in the Keyboard subkey is one called InitialKeyboardIndicators. Instead of choosing a number between 0 and 31, this string value only accepts either a 0 or a 2, where a 0 means the NUMLOCK key will be off when your computer first starts up, while a value of 2 makes the NUMLOCK key turn on by default.

These aren't the only types of string values in the registry.

Others may point to the path of a file or folder, or serve as descriptions for system tools.

A string value is listed in Registry Editor as a "REG_SZ" type of registry value.

Multi-String Value

A multi-string value is similar to a string value with the only difference being that they can contain a list of values instead of just one line.

The Disk Defragmenter tool in Windows uses the following multi-string value to define certain parameters that the service should have rights over:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\defragsvc\RequiredPrivileges

Opening this registry value shows that it contains all the following string values:

SeChangeNotifyPrivilege
SeImpersonatePrivilege
SeIncreaseWorkingSetPrivilege
SeTcbPrivilege
SeSystemProfilePrivilege
SeAuditPrivilege
SeCreateGlobalPrivilege
SeBackupPrivilege
SeManageVolumePrivilege

Not all multi-string values in the registry will have more than one entry. Some function the exact same way as single string values, but have the additional space for more entries if they need it.

Registry Editor lists multi-string values as "REG_MULTI_SZ" types of registry values.

Expandable String Value

An expandable string value is just like the string value from above except that they contain variables. When these types of registry values are called upon by Windows or other programs, their values are expanded out to what the variable defines.

Most expandable string values are easily identified in Registry Editor because their values contain % signs.

Environment variables are good examples of expandable string values:

HKEY_CURRENT_USER\Environment\TMP

The TMP expandable string value is %USERPROFILE%\AppData\Local\Temp. The benefit to this type of registry value is that the data doesn't need to contain the username of the user because it uses the %USERPROFILE% variable.

When Windows or another application calls this TMP value, it gets translated to whatever that variable is set to. By default, Windows uses this variable to reveal a path like C:\Users\Tim\AppData\Local\Temp.

"REG_EXPAND_SZ" is the type of registry value that Registry Editor lists expandable string values as.

Binary Value

As the name suggests, these types of registry values are written in binary.

Their icons in Registry Editor are blue with ones and zeros.

HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\CaptionFont

The above path is found in the Windows Registry, with CaptionFont being the binary value. In this example, opening this registry value shows the font name for captions in Windows, but it's data is written in binary instead of in a regular, human-readable form.

Registry Editor lists "REG_BINARY" as the type of registry value for binary values.

DWORD (32-bit) Values & QWORD (64-bit) Values

Both DWORD (32-bit) values and QWORD (64-bit) values have a blue icon in the Windows Registry. Their values can be expressed in either decimal or hexadecimal format.

The reason one application may create a DWORD (32-bit) value and another a QWORD (64-bit) value rests not on whether it's running from a 32-bit or 64-bit version of Windows, but instead solely on the bit length of the value. This means that you can have both types of registry values on both 32-bit and 64-bit operating systems.

In this context, a "word" means 16 bits. DWORD, then, means "double-word," or 32 bits (16 X 2). Following this logic, QWORD means "quad-word," or 64 bits (16 X 4).

An application will create the proper registry value that it needs in order to comply with these bit length rules.

The following is one example of a DWORD (32-bit) value in Windows Registry:

HKEY_CURRENT_USER\Control Panel\Personalization\Desktop Slideshow\Interval

Opening this DWORD (32-bit) value will likely show a value data of 1800000 (and 1b7740 in hexadecimal).

This registry value defines how fast (in milliseconds) your screensaver moves through each slide in a photo slideshow.

Registry Editor shows DWORD (32-bit) values and QWORD (64-bit) values as "REG_DWORD" and "REG_QWORD" types of registry values, respectively.

Backing Up & Restoring Registry Values

It doesn't matter if you're changing even just one value, always make a backup before you start, just to be sure that you can restore it back to Registry Editor in case something unexpected happens.

Unfortunately, you can't back up individual registry values. Instead, you must make a backup of the registry key that the value is in. See How To Back Up the Windows Registry if you need help doing this.

A registry backup is saved as a REG file, which you can then restore back to the Windows Registry if you need to undo the changes you made. See How To Restore the Windows Registry if you need help.

When Would I Need to Open/Edit Registry Values?

Creating new registry values, or deleting/editing existing ones, can solve a problem you're having in Windows or with another program. You may also change registry values to tweak program settings or disable an application's features.

Sometimes, you may need to open registry values simply for information purposes.

Here are a few examples that involve editing or opening registry values:

For a general overview of making changes to registry values, see How to Add, Change, & Delete Registry Keys & Values.

More Information on Registry Values

Opening a registry value will let you edit its data. Unlike files on your computer which will actually do something when you launch them, registry values simply open for you to edit them. In other words, it's completely safe to open any registry value in the Windows Registry. However, editing values without first knowing what you're doing isn't a good idea.

There are some circumstances where changing a registry value won't take effect until you reboot your computer. Others don't require a restart at all, so their changes will be reflected instantly. Because Registry Editor doesn't tell you which ones require a reboot, you should restart your computer if a registry edit doesn't seem to be working.

You may see some registry values in the Windows Registry listed as REG_NONE. These are binary values that are created when empty data is written to the registry. Opening this type of registry value shows its value data as zeros in hexadecimal format, and Registry Editor lists these values as a (zero-length binary value).

Using a Command Prompt, you can delete and add registry keys with the reg delete and reg add command switches.

The maximum size for all registry values within a registry key is limited to 64 kilobytes.