ControlSet001、ControlSet002以及CurrentControlSet

在注册表HKLM/system注册表项中包括用于windows启动的三个控件组(额外还可能存在一个备份控件组),在初始状态下,它们分别是ControlSet001ControlSet002以及CurrentControlSet。这些控件组中包含了操作系统配置的信息,比如服务、驱动、系统控制、枚举信息等等。
      
默认情况下,ControlSet001是系统真实的配置信息,但是为了避免序号混乱,windows启动时会从ControlSet001复制一份副本,作为操作系统当前的配置信息,也就是CurrentControlSet。我们对于计算机配置所作的修改都是直接写入到CurrentControlSet,在重启过程中,windows会用CurrentControlSet的内容覆盖掉ControlSet001,以保证这两个控件组一致。
      
当操作系统每成功启动一次(指成功登录),它都将CurrentControlSetControlSet001中的数据复制到ControlSet002中。这样,ControlSet002就成了最近一次成功启动的配置信息(很熟悉吧?在启动windows前按下F8所调出的菜单中有这个选项)。所以我们一般系统注册表中都只是有这三个控件组,并且序号都是current001002。(此后均用简称)
      
但是,这个顺序和数目不是一成不变的,改变就发生在使用过最近一次的正确配置之后。这个时候,系统会把002当作系统真实的配置信息,而001这个存在问题的控件组会被备份封存起来。系统启动时会从002复制副本到current,启动成功后又会把002current的信息复制一份到一个新的控件组作为新的最近一次的正确配置,也就是003。这个时候系统就存在4个控件组:current002003和备份的001,这里的001是一个存在问题的组,除非我们想把系统恢复到上次使用最近一次正确配置之前的状态,否则001的内容将不再被使用。
HKLM/system
注册表项中还有一个select的子项,其中有几个整数键,分别是:
“Current”
数据项目表示 Windows XP 在这次启动过程中使用的控件组。
“Default”
数据项目表示 Windows XP 在下次启动时将使用的控件组,它与这次启动使用的控件组相同。
“LastKnownGood ”
数据项目表示您在启动过程中选择最近一次的正确配置 Windows XP 将使用的控件组。
“Failed”
数据项表示 Windows XP 在其中保存失败启动产生的数据的控件组。 此控件组在用户第一次调用最近一次的正确配置选项之前并不实际存在。
对应上面,系统默认时其顺序是:001001002、无;
第一次使用“lastknowngood”后:002002003001
第二次使用“lastknowngood”后:003003004002(之前的备份001002覆盖掉,001组消失)
第三次使用“lastknowngood”后:004004001003002003覆盖,而当004要生成新的“lastknowngood”时,001正好可用,于是001重生,002消失)
    
依此类推,第四次1124,第五次2231…………

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值