深入 WIN2000 注册表 (1)
深入 WIN2000 注册表 (1) 2000注册表的结构
因为注册表非常庞大,而且必须快速访问以避免降低系统性能,所以Windows 2000注册表中的信息以二进制格式保存,而不像Windows 3.x的I N I文件或者M S - D O S系统文件那样以文本格式保存。为了使从庞大的数据库中获取某一指定信息的时间最少,数据库的组织结构更像是硬盘上的文件系统。
Windows 2000注册表分为四层,而且呈层叠式的结构:
• 配置单元:有五个系统定义的配置单元,它们名称的第一部分是: H K E Y _。
• 项:分为用户定义的项和系统定义的项。这些项没有特殊的命名约定,它们以主
HKEY_ 配置单元的子目录形式存在。项和子项没有附带数据—它们只负责组织对数
据的访问。
• 子项:分为用户定义的子项和系统定义的子项。这些子项没有特殊的命名约定,它们是作为用户定义或者系统定义的项的子目录形式存在的。项和子项没有相关的数据—它们只是用来组织对数据的访问(注意,某些文档不区分项和子项)。
• 值:这些元素位于结构链的末端,就像是文件系统中的文件一样。它们包含着计算机及其应用程序执行时使用的实际数据。它们可分为小而有效的几种数据类型,本章稍后将对其进行介绍。
现在,让我们来看一下每个配置单元所包含的信息,以及它们如何同Windows 2000相互作用。
1. HKEY_LOCAL_MACHINE
H K E Y _ L O C A L _ M A C H I N E ( H K L M )是包含操作系统及硬件相关信息(例如计算机总线类型,系统可用内存,当前装载了哪些设备驱动程序以及启动控制数据等)的配置单元。实际上,H K L M保存着注册表中的大部分信息,因为另外四个配置单元都是其子项的别名。提示配置单元通常简写为H K加上它们以下划线分隔的单词的首字母。
2. HKEY_CURRENT_USER
H K E Y _ C U R R E N T _ U S E R ( H K C U )配置单元包含着当前登录到由这个注册表服务的计算机上的用户的配置文件。其子项包含着环境变量、个人程序组、桌面设置、网络连接、打印机和应用程序首选项(环境变量在Windows 2000中被用来允许脚本、注册表条目,以及其它应用程序使用通配符来代替可能会发生改变的重要的系统信息)。这些信息是HKEY_USERS 配置单元当前登录用户的Security ID(SID)子项的映射。
3. HKEY_CLASSES_ROOT
H K E Y _ C L A S S E S _ R O O T ( H K C R )配置单元包含的子项列出了当前已在计算机上注册的所有C O M服务器和与应用程序相关联的所有文件扩展名。这些信息是H K E Y _ L O C A L _M A C H I N E \ S O F T WA R E \ C l a s s e s子项的映射。
4. HKEY_USERS
H K E Y _ U S E R S ( H K U )配置单元包含的子项含有当前计算机上所有的用户配置文件。其中一个子项总是映射为H K E Y _ C U R R E N T _ U S E R (通过用户的S I D值)。另一个子项H K E Y _U S E R S \ D E FA U LT包含用户登录前使用的信息。
5. HKEY_CURRENT_CONFIG
H K E Y _ C U R R E N T _ C O N F I G ( H K C C )配置单元包含的子项列出了计算机当前会话的所有硬件配置信息。硬件配置文件出现于Windows NT版本4,它允许你选择在机器某个指定的会话中支持哪些设备驱动程序。这些信息是H K E Y _ L O C A L _ M A C H I N E \ S Y S T E M \ C u r r e n t C o n t r o l S e t子
项的映射。
因为注册表是一个小型关系数据库,所以从逻辑上就需要有一个能定义其组织结构的模式。除了上面介绍的之外,这个结构还应该提供有限的数据类型集以便包含注册表值。
Windows 2000注册表条目共有11种可识别的数据类型,表1 - 1提供了其名称和功能。
每一种原始数据格式类型(名称分别为D Wo r d、二进制、字符串、多重字符串) ,在
R e g e d t 3 2 . e x e中都有一个专门的编辑器。这些编辑器将在直接解决方案(Immediate Solutions)
部分介绍。
Windows 2000注册表可识别的数据类型 数据类型原始数据类型功能
R E G _ N O N E 未知加密数据
R E G _ S Z 字符串文本字符
R E G _ E X PA N D _ S Z 字符串带有变量的文本
R E G _ B I N A RY 二进制二进制数据
R E G _ D W O R D 数值数值数据
R E G _ D W O R D _ B I G _ E N D I A N 数值非I n t e l数值
R E G _ L I N K 字符串文件路径
R E G _ M U LT I _ S Z 多重字符串字符串数组
R E G _ F U L L _ R E S O U R C E _ D E S C R I P TO R 字符串硬件资源I D
R E G _ R E S O U R C E _ R E Q U I R E M E N T S _ L I S T 字符串硬件资源I D
待续