预定义密钥

应用程序必须先打开密钥,然后才能将数据添加到注册表。 若要打开密钥,应用程序必须向注册表中已打开的另一个项提供句柄。 系统定义始终打开的预定义密钥。 预定义键可帮助应用程序在注册表中导航,并可以开发允许系统管理员操作数据类别的工具。 将数据添加到注册表的应用程序应始终在预定义键的框架中工作,因此管理工具可以找到并使用新数据。

应用程序可以使用这些键的句柄作为注册表的入口点。 尽管这些句柄的使用可能因平台而异,但这些句柄对所有注册表实现都有效。 此外,已针对特定平台定义了其他预定义句柄。 下面是预定义键的句柄。

Handle 说明
HKEY_CLASSES_ROOT
从属于此项的注册表项定义类型 (或类,) 文档以及与这些类型关联的属性。 Shell 和 COM 应用程序使用此密钥下存储的信息。
此密钥还通过存储 DDE 和 OLE 支持的信息,提供与 Windows 3.1 注册数据库的向后兼容性。 文件查看器和用户界面扩展将其 OLE 类标识符存储在 HKEY_CLASSES_ROOT 中,进程内服务器在此密钥中注册。
不应在模拟不同用户的服务或应用程序中使用此句柄。
有关详细信息,请参阅 HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
包含有关本地计算机系统的当前硬件配置文件的信息。 HKEY_CURRENT_CONFIG下的信息仅描述了当前硬件配置与标准配置之间的差异。 有关标准硬件配置的信息存储在 HKEY_LOCAL_MACHINE“软件和系统”密钥下。
HKEY_CURRENT_CONFIGHKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current的别名。
有关详细信息,请参阅 HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
从属于此键的注册表项定义当前用户的首选项。 这些首选项包括环境变量的设置、有关程序组、颜色、打印机、网络连接和应用程序首选项的数据。 使用此密钥可以更轻松地建立当前用户的设置;键映射到 HKEY_USERS中的当前用户的分支。 在 HKEY_CURRENT_USER中,软件供应商存储当前用户特定的首选项,以在其应用程序中使用。 例如,Microsoft 为其应用程序创建 HKEY_CURRENT_USER\Software\Microsoft 密钥,每个应用程序在 Microsoft 密钥下创建自己的子项。
HKEY_CURRENT_USERHKEY_USERS之间的映射按进程进行,并且是在进程首次引用HKEY_CURRENT_USER时建立。 映射基于要引用 HKEY_CURRENT_USER的第一个线程的安全上下文。 如果此安全上下文未在 HKEY_USERS 中加载注册表配置单元,则使用 HKEY_USERS\.Default建立映射。 建立此映射后,即使线程的安全上下文发生更改,它也会保留。
HKEY_CURRENT_USER中的所有注册表项(HKEY_CURRENT_USER\Software\Classes下条目除外)都包含在漫游用户配置文件的每个用户注册表部分中。 若要从漫游用户配置文件中排除其他条目,请将其存储在 HKEY_CURRENT_USER_LOCAL_SETTINGS中。
不应在模拟不同用户的服务或应用程序中使用此句柄。 请改为调用 RegOpenCurrentUser 函数。
有关详细信息,请参阅 HKEY_CURRENT_USER
HKEY_CURRENT_USER_LOCAL_SETTINGS
从属于此项的注册表项定义当前用户的首选项,这些首选项是计算机的本地用户。 漫游用户配置文件的按用户注册表部分不包括这些条目。 Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP/2000: 从 Windows 7 和 Windows Server 2008 R2 开始支持此密钥。

HKEY_LOCAL_MACHINE
从属于此键的注册表项定义计算机的物理状态,包括有关总线类型、系统内存以及已安装硬件和软件的数据。 它包含保存当前配置数据的子项,包括 enum 分支 (即插即用信息,其中包括系统) 的所有硬件的完整列表、网络登录首选项、网络安全信息、软件相关信息 ((例如服务器名称和服务器) 的位置)以及其他系统信息。
有关详细信息,请参阅 HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
从属于此键的注册表项允许访问性能数据。 数据实际上不存储在注册表中;注册表函数会导致系统从其源收集数据。
HKEY_PERFORMANCE_NLSTEXT
从属于此键的注册表项引用以运行计算机系统的区域的本地语言描述计数器的文本字符串。 这些条目不适用于Regedit.exe和Regedt32.exe。Windows 2000: 不支持此密钥。

HKEY_PERFORMANCE_TEXT
从属于此键的注册表项引用描述美国英语计数器的文本字符串。 这些条目不适用于Regedit.exe和Regedt32.exe。Windows 2000: 不支持此密钥。

HKEY_USERS
从属于此项的注册表项定义本地计算机上新用户的默认用户配置和当前用户的用户配置。

使用 RegOverridePredefKey 函数可将预定义的注册表项映射到注册表中的指定项。 例如,软件安装程序可以在安装 DLL 组件之前重新映射预定义密钥。 这使安装程序能够轻松检查 DLL 的安装过程写入预定义密钥的信息。

RegDisablePredefinedCacheRegDisablePredefinedCacheEx 函数禁用预定义注册表句柄的句柄缓存。 使用模拟的服务应在使用预定义注册表句柄之前调用 RegDisablePredefinedCacheEx

预定义句柄不是线程安全的。 关闭一个线程中的预定义句柄会影响使用该句柄的任何其他线程。