What is a Registry Value ?
The Windows Registry is full of objects called values, which contain specific instructions related to Windows and applications.
There are many types of registry values, all of which are explained below. These include string values, binary values, DWORD (32-bit) values, QWORD (64-bit) values, multi-string values, and extensible string values.
Where are the Registry Values Located?
Registry values are found throughout the registry in Windows 11, Windows 10, Windows 8, Windows 7, Windows Vista, and Windows XP.
In the Registry Editor there are not only values, but also registry keys and registry hives. The last two objects are like folders and appear on the left side of Registry Editor. So the registry values are a bit like files stored in these keys and their "subkeys".
When you select a subkey, all of its registry values are displayed on the right side of Registry Editor. This is the only place in the registry where you will see the values; they are never listed on the left.
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 value is the rightmost entry. These entries are also displayed as files on the right side of the Registry Editor. Each value is stored in a key, and each key comes from a registry hive (the top left folder).
The exact structure is maintained throughout the Windows Registry without exception.
Registry Value Types
There are different types of registry values, each created for a different purpose. Some use regular letters and numbers that are easy to read and understand, while others use binary or hexadecimal numbers 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 are also the most readable. They can contain letters, numbers and symbols.
Here is an example of a string value:
HKEY_CURRENT_USER\Control Panel\Keyboard\Keyboard Speed
Opening the KeyboardSpeed value at this point in the registry gives you an integer like 31.
In this particular example, the string value defines the rate at which a character repeats when the key is held down. If you were to change the value to 0, the speed would be much slower than if you kept it at 31.
Each string value is used for a different purpose based on its location in the registry, and each performs a specific function when set to a different value.
For example, another string value located in the Keyboard subkey is named InitialKeyboardIndicators. Instead of choosing a number between 0 and 31, it only accepts a 0 or a 2, where 0 means that the NUM LOCK key is off when you first start your computer, while 2 means that the NUM LOCK key is on. by default.
These are not the only types of string values in the registry. Others can point to the path of a file or folder, or serve as descriptions for system tools.
A string value appears in Registry Editor as a registry value of type REG_SZ.
Multiple String Value
A multi-string value is similar to a string value, except that it can contain a list of values instead of a single line.
Disk Defragmenter uses the following multi-string value to define certain parameters, the following multi-string value to define certain parameters to which the service must have rights:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\defragsvc\RequiredPrivileges
Opening this value reveals that it contains all of the following string values:
SeChangeNotifyPrivilege
SeImpersonatePrivilege
SeIncreaseWorkingSetPrivilege
SeTcbPrivilege
SeSystemProfilePrivilege
SeAuditPrivilege
SeCreateGlobalPrivilege
SeBackupPrivilege
SeManageVolumePrivilege
Expandable String Value
The expandable string value of TMP is %USERPROFILE%\AppData\Local\Temp. The advantage of this type of registry value is that the data does not have to include the user's username because it uses the %USERPROFILE% variable.
When Windows or another application calls this TMP value, it translates it to the value that this variable is set to. By default, Windows uses this variable to display a path like C:\Users\Tim\AppData\Local\Temp.
REG_EXPAND_SZ is the type of registry value that Registry Editor lists as expandable string values.
Binary Value
As the name suggests, these types of registry values are written in binary. The registry editor icons are blue with ones and zeros.
HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\CaptionFont
The above path is in the registry, where CaptionFont is the binary value. In this example, opening this value displays the font name for the labels in Windows, but its data is written in binary instead of normal human-readable format.
Registry Editor lists REG_BINARY as the registry value type for binary values.
DWORD (32-bit) Values and QWORD (64-bit) Values
Both DWORD (32-bit) and QWORD (64-bit) values have a blue icon in the Windows registry. Their values can be expressed in decimal or hexadecimal format.
The reason an application can create one DWORD (32-bit) value and another QWORD (64-bit) value does not depend on whether it is running on a 32-bit or 64-bit version of Windows, but only 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.
A "word" in this context means 16 bits. DWORD then means "double word" or 32 bits (16*2). Following this logic, QWORD means "quad word" or 64 bits (16*4).
An application creates the correct registry value it needs to comply with these bit length rules.
The following is an example of a DWORD (32-bit) value in the Windows registry:
HKEY_CURRENT_USER\Control Panel\Personalization\Desktop Slideshow\Interval
If you open this DWORD (32-bit) value, you will probably see value data of 1800000 (and 1b7740 in hexadecimal notation). This registry value defines how fast (in milliseconds) your screensaver moves through each slide in a photo slideshow.
Registry Editor displays DWORD (32-bit) and QWORD (64-bit) values as REG_DWORD and REG_QWORD registry value types, respectively.
Backup and Restore Registry Values
It doesn't matter if you change even one value, always make a backup before you start, just to make sure you can restore it in Registry Editor in case something unexpected happens.
Unfortunately, you cannot back up individual registry values. Instead, you must back up the registry key where the value resides.
A backup copy of the registry is saved as a .reg file, which you can then restore to the Windows registry if you need to undo any changes you've made.
When do I Need to Open/Edit Registry Values?
Creating new registry values or deleting/editing existing values may fix a problem you're having in Windows or with another program. You can also change registry values to adjust program settings or disable an application's functionality.
Sometimes you need to open registry values for informational purposes only.
Learn More About Registry Values
When you open a registry value, you can edit its data. Unlike files on your computer, which actually do something when you start them, registry values are simply opened for you to edit. In other words, it's perfectly safe to open any registry value in the Windows Registry. However, it's a bad idea to edit values without first knowing what you're doing.
There are some circumstances where changing a registry value does not take effect until you restart your computer. Others don't require a reboot at all, so your changes take effect immediately. Because Registry Editor doesn't tell you which ones require a restart, you should restart your computer if a registry edit doesn't seem to work.
Some registry values may appear as REG_NONE. These are binary values created when empty data is written to the registry. When you open this type of value, its value data is displayed as zeros in hexadecimal format and is listed by Registry Editor as (zero-length binary value).
Command Prompt allows you to delete and add registry keys using the reg delete and reg add command switches.
The maximum size for all registry values within a registry key is limited to 64 kilobytes.
Comments
Post a Comment