|
Key:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
Value:PendingFileRenameOperations
键值下面建立一个延迟删除列表,系统在下次启动的时候,CSRSS.EXE进程将根据这个列表对文件进行延迟更新或者延迟删除操作。
注:PendingFileRenameOperations是一个REG_MULTI_SZ类型的注册表键值,不能直接通过注册表编辑器编辑,否则会造成延迟删除列表被破坏。要查看这个键值的内容,可以使用注册表编辑器或者使用我以前开发的 PendMove 工具,
对于Windows XP和Windows Vista两个操作系统在安装完需要重启的补丁以后的PendingFileRenameOperations键值数据以后会发现,Windows XP是利用PendingFileRenameOperations控制被占用文件进行被占用文件的升级和删除操作的。而Windows Vista并没有使用这个键值控制被占用文件的升级和删除操作。那么Windows Vista 补丁程序是怎么实现的延迟删除呢?
首先,需要明确的一点就是Windows Vista 新增的 Restart Manager 机制并没有完全被使用如果按照以前的说法,Windows Vista 在安装完补丁程序以后基本上是不需要重启的,但是现在看来每次打补丁都必须重启系统,至少进几个月的补丁都是这样的。
那么Windows Vista是如何得知被占用文件的目标文件和源文件信息,如何进行升级的呢?
在进行一番搜索以后,发现Windows Vista是利用一个/多个XML文件记录数据信息,在一个特别的目录里面存放临时文件和升级文件的。我们知道,以前打完Windows 补丁,都会在Windows目录下出现在$KB目录,但是Windows Vista好像没有这个内容,看不见吗?不是看不见,是因为根本就没有生成。
实际上,Windows Vista 是利用 %SystemRoot%\WinSxS 目录来存放临时文件、备份文件和配置信息的,Windows 会在适当的时候根据配置文件来完成文件的更新操作。
打开 %SystemRoot%\WinSxS 目录,会看到两个XML文件,pending.xml 和 cleanup.xml。前者记录了文件的新版本信息和旧版本信息,后者用途好像是用于清理环境的。
根据XML文件的描述,很容易得知:
最后留一个问题给大家:Windows Vista 之前的操作系统是利用 CSRSS.EXE 实现文件更新的,那么Windows Vista呢?
本文转自:http://blogs.itecn.net/,作者:smallfrogs
| Ghost备份Vista造成无法启动 修复 | 11-01 |
| Windows优化大师十二则使用技巧推 | 08-30 |
| 移动IE缓存,释放Vista系统磁盘空 | 08-27 |
| 酷!Vista下文件夹也可虚拟磁盘分 | 08-24 |
| Windows Vista里面延迟删除技术的 | 08-24 |
| Vista中如何把“画图”送回到附件 | 08-23 |
| Vista/XP系统中如何随意查看隐藏 | 08-22 |
| 再谈微软在Windows Vista上所犯下 | 08-21 |
| 更改Vista自动创建系统还原点时间 | 08-20 |
| Windows Vista SP1泄漏版深度揭秘 | 08-18 |
| Vista系统中父母控制与网络浏览限 | 08-03 |
| 在Vista系统下扩大“发送到”的范 | 08-02 |