预定义键

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

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

处理 描述
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\Software\Classes 下的注册表项外,HKEY_CURRENT_USER 中的所有注册表项都包含在漫游用户配置文件的每个用户注册表部分中。 若要从漫游用户配置文件中排除其他条目,请将这些条目存储在 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
从属于此密钥的注册表项定义计算机的物理状态,包括有关总线类型、系统内存以及已安装硬件和软件的数据。 它包含保存当前配置数据的子项,包括即插即用信息(枚举 分支),其中包括系统上所有硬件的完整列表、网络登录首选项、网络安全信息、软件相关信息(例如服务器名称和服务器位置),以及其他系统信息。
有关详细信息,请参阅 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

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