注册表的结构

注册表是一个分层数据库,其中包含对 Windows 的操作以及 Windows 上运行的应用程序和服务至关重要的数据。 数据以树格式进行结构化。 树中的每个节点称为 。 每个键可以同时包含 子项 和数据条目(称为 )。 有时,密钥的存在是应用程序所需的所有数据;其他时候,应用程序会打开一个密钥并使用与该键关联的值。 键可以有任意数量的值,值可以采用任何形式。 有关详细信息,请参阅注册表值类型和注册表元素大小限制

每个键都有一个由一个或多个可打印字符组成的名称。 键名称不区分大小写。 键名称不能包含反斜杠字符 (\) ,但可以使用任何其他可打印字符。 值名称和数据可以包含反斜杠字符。

每个子项的名称对于层次结构中紧靠在它的上方的键而言是唯一的。 键名称未本地化为其他语言,但值可能为 。

下图是注册表编辑器显示的示例注册表项结构。

注册表编辑器窗口

“我的电脑”下的每一个树都是一个键。 HKEY_LOCAL_MACHINE密钥具有以下子项:HARDWARESAMSECURITYSOFTWARESYSTEM。 其中每个键反过来都有子项。 例如, 硬件 密钥具有 子项 DESCRIPTIONDEVICEMAPRESOURCEMAP; DEVICEMAP 键具有多个子项,包括 VIDEO

每个值都包含一个值名称及其关联的数据(如果有)。 MaxObjectNumberVgaCompatible 是包含 VIDEO 子项下的数据的值。

注册表树的深度可以为 512 级。 通过单个注册表 API 调用,一次最多可以创建 32 个级别。

Windows 注册表概述