3.1.1.7 Predefined Keys

With the 32-bit and 64-bit key namespaces, the Data Store can have multiple trees. The Data Store MUST implement a set of standard trees that have a predefined, and therefore, well-known root key name; and that are used to store a specific type of data, specified as follows.

When using the methods that are specified in section 3.1.5 to operate on these keys, the clients MUST specify the key name by using one of the corresponding Unicode string names that are specified in the following table.

Key name

Description

"HKEY_CLASSES_ROOT"

Registry entries subordinate to this key define types (or classes) of documents and the properties associated with those types. The subkeys of the HKEY_CLASSES_ROOT key are a merged view of the following two subkeys:

HKEY_CURRENT_USER\Software\Classes

HKEY_LOCAL_MACHINE\Software\Classes

"HKEY_CURRENT_CONFIG"

This key contains information on the current hardware profile of the local computer.

"HKEY_CURRENT_USER"

Registry entries subordinate to this key define the preferences of the current user. These preferences include the settings of environment variables, data on program groups, colors, printers, network connections, and application preferences.

The HKEY_CURRENT_USER root key is a subkey of the HKEY_USERS root key, as described in section 3.1.1.8.

"HKEY_LOCAL_MACHINE"

Registry entries subordinate to this key define the physical state of the computer, including data on the bus type, system memory, and installed hardware and software.

"HKEY_USERS"

Registry entries subordinate to this key define the default user configuration for new users on the local computer and the user configuration for the current user.

"HKEY_PERFORMANCE_DATA"

Registry entries subordinate to this key allow access to performance data.

"HKEY_PERFORMANCE_TEXT"

Registry entries subordinate to this key reference the text strings that describe counters in U.S. English.

"HKEY_PERFORMANCE_NLSTEXT"

Registry entries subordinate to this key reference the text strings that describe counters in the local language of the area in which the computer is running.

A registry file is the physical representation of a logical tree in a registry. Registry files are typically implemented as disk files and provide a stable backing store for a registry. The disk files SHOULD be local to the server. In the case of remote files, the server MUST provide access to the remote file in a manner that is transparent to the user of the protocol and the protocol itself. The actual translation of the remote file name and accessing the file from the remote location is not addressed in this specification.

Subsets of the registry hierarchy are exposed to remote clients as files. The remote client can request that the server save a portion of the registry hierarchy as a file (see section 3.1.5.20). Similarly, the remote client can request that the server add data to the registry hierarchy from a file (see section 3.1.5.19).

If a server chooses to use a different backing store (for example, a relational database), it MUST provide a mapping from the logical file (that is exposed to the client) to the true backing store.