注册表ControlSet001、ControlSet002、CurrentControlSet三个项的作用及关系
ControlSet001、 ControlSet002以及CurrentControlSet的作用:
这些控件组中包括了操作系统配置的信息,比方服务、驱动、系统控制、枚举信息等等。
ControlSet001、 ControlSet002以及CurrentControlSet的关系:
默认情况下,ControlSet001是系统真实的配置信息。可是为了避免序号混乱,windows启动时会从ControlSet001复制一份副 本,作为操作系统当前的配置信息。也就是CurrentControlSet。
我们对于计算机配置所作的改动都是直接写入到 CurrentControlSet,在重新启动过程中。windows会用CurrentControlSet的内容覆盖掉ControlSet001。以 保证这两个控件组一致。
当操作系统每成功启动一次(指成功登录),它都将CurrentControlSet和ControlSet001中的数据拷贝到 ControlSet002中。这样,ControlSet002就成了“近期一次成功启动的配置信息”(非常熟悉吧?在启动windows前按下F8所调 出的菜单中有这个选项)。所以我们一般系统注冊表中都仅仅是有这三个控件组,而且序号都是current、001和002。
可是,这个顺序和数目不是一成不变的。改变就发生在使用过“近期一次的正确配置”之后。这个时候,系统会把002当作系统真实的配置信息。而001这个存 在问题的控件组会被备份封存起来。系统启动时会从002复制副本到current。启动成功后又会把002和current的信息复制一份到一个新的控件 组作为新的“近期一次的正确配置”,也就是003。这个时候系统就存在4个控件组:current、002、003和备份的001,这里的001是一个存 在问题的组,除非我们想把系统恢复到上次使用“近期一次正确配置”之前的状态,否则001的内容将不再被使用。
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消失)
等等,第四次1、1、2、4,第五次2、2、3、1…………