您的位置:首页 > 其它

深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 第四章 管理机制 (一)

2009-05-30 18:17 501 查看
第四章 管理机制

好久没有更新这个读书笔记了。不是因为不想看了,而是因为这段时间比较忙,另一方面因为第三章的内容确实晦涩难懂。花了很长时间看第三章的内容,还是收获很少,没法写读书笔记,甚而至于开始怀疑这本书的易读性。如果再坚持下去啃第三章,恐怕要失去信心,彻底放弃了。所以跳过了第三章,开始读第四章。

本章讲述了三种基本的管理机制:注册表、服务和Windows管理规范。

注册表
注册表是配置信息的存储仓库。但也是Windows内核和执行体所维护的内存数据结构的一个窗口。(以前使用Linux操作系统时,它的文件系统中有一个好像是叫proc的目录,这个目录下存放的文件,其内容是Linux内核中运行时变量值的快照。即查看这些文件的内容,即可知道一些特定内核变量的值。修改这些文件的内容,也就实时修改了内核变量的值。由此看来,Windows注册表也实现了类似的特性。)

查看和修改注册表
大部分注册表的设置都有一个对应的用户界面工具来完成。但有些高级设置必须直接修改注册表。Windows XP下修改注册表的工具是Regedit.exe。

注册表用法
注册表的读取,一般为三个时间点:
l 引导过程
l 登录过程
l 应用程序启动过程
当然在其他时间点上也可以读取注册表,典型的情况是应用程序响应注册表修改请求。

注册表的修改:
l 系统安装过程,会创建初始注册表。
l 应用程序安装过程,创建一些默认配置。
l 驱动程序安装过程。
l 用户通过用户界面修改设置。

有些应用程序会使用轮询(poll,书中译为“查询”,不够确切。)的方式不停的查询注册表内容。(这是低效率的做法,)正确的做法是使用RegNotifyChangeKey函数监听注册表变化,该函数会使调用线程进入等待状态。

(然而令我不解的是,很多Windows系统进程,也会轮询注册表。使用Sysinternals的Process Monitor工具,即可看到很多系统进程不停的查询注册表的键值,这包括lsass.exe,explorer.exe等进程。)
(Process Monitor是Regmon.exe和Filemon.exe合并起来的一个工具。这本书中不会提到Process Monitor,因为它是Sysinternals后来发布的。)

注册表数据类型
注册表的键(key):是一个容器,可以包含其他的键(子键)和值。类似于磁盘的目录。
注册表的值(value):存储的是数据。类似于磁盘上的文件。
注册表值的数据类型
Value Type
Description
REG_NONE
No value type.
REG_SZ
Fixed-length Unicode string.
REG_EXPAND_SZ
Variable-length Unicode string that can have embedded environment variables.
REG_BINARY
Arbitrary-length binary data.
REG_DWORD
32-bit number.
REG_DWORD_LITTLE_ENDIAN
32-bit number, with low byte first. This is equivalent to REG_DWORD.
REG_DWORD_BIG_ENDIAN
32-bit number, with high byte first.
REG_LINK
Unicode symbolic link.
REG_MULTI_SZ
Array of Unicode NULL-terminated strings.
REG_RESOURCE_LIST
Hardware resource description.
REG_FULL_RESOURCE_DESCRIPTOR
Hardware resource description.
REG_RESOURCE_REQUIREMENTS_LIST
Resource requirements.
REG_QWORD
64-bit number.
REG_QWORD_LITTLE_ENDIAN
64-bit number, with low byte first. This is equivalent to REG_QWORD.
REG_QWORD_BIG_ENDIAN
64-bit number, with high byte first.
其中的REG_LINK类型可以让一个键指向另一个键或值。

注册表的逻辑结构
根键
缩写
说明
链接
HKEY_CURRENT_ USER
HKCU
指向当前登录用户的轮廓
HKEY_USERS下对应的子键
HKEY_USERS
HKU
包含了所有已加载用户轮廓的子键
不是链接
HKEY_CLASSES_ ROOT
HKCR
包含了文件关联和COM注册信息
HKLM/SOFTWARE/Classes
HKEY_LOCAL_ MACHINE
HKLM
包含与系统有关的信息
不是链接
HKEY _CURRENT_ CONFIG
HKCC
当前硬件配置
HKLM/SYSTEM/CurrentControlSet/Hardware Profiles/ Current
HKEY_PERFORMANCE_DATA
HKPD
性能计数器
不是链接
(HKEY_PERFORMANCE_DATA不能通过regedit.exe访问到,只能通过API访问。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐