HKLM\system注册表项中还有一个select的子项,其中有几个整数键,分别是:
“Current”数据项目表示 Windows XP 在这次启动过程中使用的控件组。
“Default”数据项目表示 Windows XP 在下次启动时将使用的控件组,它与这次启动使用的控件组相同。
“LastKnownGood ”数据项目表示您在启动过程中选择“最近一次的正确配置”时 Windows XP 将使用的控件组。
“Failed”数据项表示 Windows XP 在其中保存失败启动产生的数据的控件组。 此控件组在用户第一次调用“最近一次的正确配置”选项之前并不实际存在。
对应上面四个值,系统默认时其顺序是:001、001、002、无;
第一次使用“lastknowngood”后:002、002、003、001
第二次使用“lastknowngood”后:003、003、004、002(之前的备份001被002覆盖掉,001组消失)
第三次使用“lastknowngood”后:004、004、001、003(002被003覆盖,而当004要生成新的“lastknowngood”时,001正好可用,于是001重生,002消失)
当大家使用了“最近一次的正确配置”之后,ControlSet001被认为时错误的配置被封存起来(001记录在在Failed中,不使用了),而用ControlSet002启动,相应生成ControlSet003作为“最近一次的正确配置”,002取代了001的位置,003又取代了002的位置。按上面所说,这些ControlSet会循环使用,最多也就4个,分别为001、002、003、004。
为了改善保护效果,避免因为使用“最近一次的正确配置”之后,保护ControlSet001就不起作用(因为002取代了001的位置了),因此对保护的项作更改,更改成:要保护的项是HKLM下的\SYSTEM\ControlSet00*\Control\SafeBoot\**。这样就可以了。
五、关于ControlSet001、ControlSet002以及CurrentControlSet
下午跟笑笑讨论了很久的问题,关于“CurrentControlSet”和“ControlSet00?”这两个键,究竟他们是怎样的关系呢?为什么更改ControlSet001的内容和权限,CurrentControlSet就会作同样的修改呢?反之也是这样,为什么呢?
晚上我在微软官网找到了些信息,相信大家会有兴趣的,地址是http://support.microsoft.com/kb/100010/zh-cn。
当然,内容都是英文……那么我对部分重要信息作一下解释。
大家应该会看到这么一段: 引用:
ControlSet001 may be the last control set you booted with, while ControlSet002 could be what is known as the last known good control set, or the control set that last successfully booted Windows NT. The CurrentControlSet subkey is really a pointer to one of the ControlSetXXX keys.作者: xiaomi 时间: 2008-10-23 16:41 说的太专业了。。。不明白