应用程序在向注册表添加数据之前必须先打开相应的键。为了打开一个键,应用程序必须提供另一个在注册表中已经打开的键的句柄。为此,系统定义了一些总是处于打开状态的“预定义键”(predefined key)。预定义键能够帮助应用程序在注册表中导航,并且使系统管理员通过开发工具来实现数据分类成为可能。预定义键如下:
1、HKEY_CLASSES_ROOT:
该键下定义了文档的类型和与这些类型相关的属性。Shell和COM应用程序使用这些信息。这个键也提供对于Windows3.1注册数据库(存放DDE和OLE支持信息)的向后兼容。文件查看器和用户接口扩展将它们的OLE类标识存放在HKEY_CLASSES_ROOT,而进程内服务器存放在该键中。该句柄不能在扮演不同用户的服务器或应用程序中使用。
2、HKEY_CURRENT_CONFIG:
包含当地计算机系统当前硬件配置的信息。该键下的信息只描述了当前硬件配置和标准配置的差别。关于标准硬件配置的信息存放在HKEY_LOCAL_MACHINE的Software和System两个键中。
HKEY_CURRENT_CONFIG是HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current的别名。在Windows NT 3.51和更早的版本中不存在该键。
3、HKEY_CURRENT_USER:
该键下定义了当前用户的特有设置( preferences )。这些设置包含环境变量的设置、程序组、颜色、打印机、网络链接等的数据。该键是HKEY_USERS键中当前用户的一个分枝。在该键中,软件商存放特定于当前用户的软件配置信息。该句柄不能在扮演不同用户的服务器或应用程序中使用。而应该使用RegOpenCurrentUser函数。
4、HKEY_DYN_DATA:
在Windows Me/98/95中,该键用来收集性能数据(performance data)。
5、HKEY_LOCAL_MACHINE:
该键下定义了计算机的物理状态,包括:总线类型、系统内存、和已安装的软、硬件的相关数据。它的子键保存着当前的配置数据,包括:P&P信息、网络登入配置、网络安全信息、软件相关信息(服务名和服务的位置等信息)和其它一些系统信息。
6、HKEY_PERFORMANCE_DATA:
该键允许你访问性能数据。这些信息并不存放在注册表中;而是通过用注册表操作函数命令系统去收集的。在Windows Me/98/95中不支持该键。
7、HKEY_PERFORMANCE_NLSTEXT:
该键引用了那些描述了计算机运行的本地语言范围的计数器的文本字符串。Regedit.exe和Regedt32.exe不能使用该键下的内容。在Windows 2000/NT, Windows Me/98/95中不支持该键。
8、HKEY_PERFORMANCE_TEXT:
该键引用了描述US English语言计数器的文本字符串。Regedit.exe和Regedt32.exe不能使用该键下的内容。在Windows 2000/NT, Windows Me/98/95中不支持该键。
9、HKEY_USERS:
该键定义了本地计算机新用户的默认用户配置和当前用户的用户配置。
RegOverridePredefKey函数使你能够将预定义的注册表键映射到注册表中的一个特定的键。