windows xp 注册表的结构?

详细点
2025-12-17 20:33:09
推荐回答(1个)
回答1:

Windows NT/2000/XP注册表的数据结构

一、Windows NT/2000/XP注册表的层次结构

打开Windows NT、Windows 2000及Windows XP的注册表编辑器,可以看出这三种系统的注册表基本上是相同的,都具有以下5个主键:

(1).HKEY_LOCAL_MACHINE根键。该根键中保存了使系统及其中的硬件、软件正常运行所需的设置。

(2).HKEY_CLASSES_ROOT根键。该根键中包含了启动应用程序所需的全部信息。

(3).HKEY_CURRENT_CONFIG根键。该根键中包含了系统硬件的配置信息。

(4).HKEY_USERS根键。该根键中包含了默认用户和登录用户的设置信息。

(5).HKEY_CURRENT_USER根键。该根键中包含了与当前登录用户有关的映射配置信息。

与Windows 9x的注册表不同的是,Windows NT/2000/XP注册表的存放方式发生了变化,其注册表的根键和主键分支分类存放在%Windir%\System32\Config文件夹中,这样做不仅提高了Windows NT/2000/XP的运行效率,而且利于系统的维护。

关于Windows NT/2000/XP注册表的根键与主键分析,可参考上节课所介绍的Windows 9x注册表部分。

二、Windows NT/2000/XP注册表的键值类型

Windows NT/2000/XP注册表的键值类型除了具有与windows 9x注册表中相同的三种键值类型外,还具有以下几种键值类型:

(1).REG_MULTI_SZ(多字符串值)

REG_MULTI_SZ允许将一系列项目作为单独的一个值使用。多种网络传输协议、多个项目、设备列表以及其他类似的条目,都可以使用REG_MULTI_SZ条目来表示。

通常以列表形式表示的项目都应采用REG_MULTI_SZ条目,若同时使用多个条目,则每个都单独占一行。例如,可为同一块网卡设置多个IP地址。

(2). REG_EXPAND_SZ(可扩充字符串值)

REG_EXPAND_SZ条目代表一个可扩展的字符串。该条目编辑器与标准REG_SZ条目编辑器看起来基本相同,只是在变量用法上有所差异。在REG_EXPAND_SZ条目编辑器中输入变量后,当激活该变量时,系统会用相应的文本替换该变量。

REG_EXPAND_SZ条目的一个典型应用就是经常用到的%SYSTEMROOT%变量,激活该变量后,会返回Windows NT、Windows 2000或Windows xp文件所在的具体目录。%USERNAME%也作为变量使用,其具体数值就是已登录的用户名。

提示:在要求使用变量条目REG_EXPAND_SZ时,如果使用的是一个REG_SZ(字符串)条目,则注册表就不会用正确的信息替换该变量,它只是将实际的变量简单地作为文本来返回。

(3).REG_FULL_RESOURCE_DESCRIPTOR:这种类型用来保存硬件的资源列表,其内容是一个嵌套的数组。

(4).REG_DWORD_LITTILE_ENDIAN

这种类型的项是REG_DWORD类型项的同类,通常用来保存数字。数据值为32位的数字,最重要的字节按照顺序从左侧开始排列。

这种项类型存在于windows xp、windows 2000和windows 98中,从技术的角度来看,它也应该存在于windows NT中,但是windows NT中的注册表自动将REG_DWORD_LITTILE_ENDIAN类型的数据转换成标准的REG_DWORD类型。

(5).REG_DWORD_BIG_ENDIAN:这种项类型正好与REG_DWORD_LITTILE_ENDIAN相反,最重要的字节按照顺序从右侧开始排列。

(6).REG_LINK:这种类型的项中包含一个数据和注册表值之间的连接。例如,需要知道用户惟一ID的应用程序可以查询当前用户(HKEY_CURRENT_USER)的安全ID