NOVOTS KMS 词汇表 Glossary    联系我们 Contact Us
查询 Search  
   
按类别浏览 Browse by Category
NOVOTS KMS .: 操作系统 .: CurrentControlSet和ControlSet001

CurrentControlSet和ControlSet001

 

一般机器中,控制系统启动的有三个注册表项,在HKEY_LOCAL_MACHINE/SYSTEM下,存在着 CurrentControlSetControlSet001ControlSet002这三个子键,他们包含的内容似乎一样,而且修改一个,其它也会发生变化,那么到底修改哪一个才是合理的呢。那么就让我们首先了解这三个注册表项吧。

 

 

 

先了解一下控制系统启动的三个注册表项:在HKEY_LOCAL_MACHINE/SYSTEM下,存在着CurrentControlSetControlSet001ControlSet002这三个子键,他们是与系统启动有关的三个项,里面记录着操作系统配置的信息,包括了系统控制、驱动、服务等信息。

 

ControlSet001是系统默认的配置信息,但是为了避免序号混乱,windows启动时会从ControlSet001复制一份副本,作为操作系统当前的配置信息,也就是CurrentControlSet。那么ControlSet002是什么呢?当操作系统每成功启动一次,都将 CurrentControlSetControlSet001中的配置信息复制到ControlSet002中,ControlSet002就成了 “最近一次成功启动的配置信息”,也就是启动时按F8之后,你所看到的选项“最后一次正常启动的配置”。

 

 

 

另外,大家请看,在使用了“最近一次的正确配置”之后会发生的事情:

 

HKEY_LOCAL_MACHINE/system注册表项中还有一个select的子项,其中有几个整数键,分别是:

 

Current”数据项目表示 Windows在这次启动过程中使用的控件组。

 

Default”数据项目表示 Windows在下次启动时将使用的控件组,它与这次启动使用的控件组相同。

 

LastKnownGood ”数据项目表示您在启动过程中选择“最近一次的正确配置”时 Windows将使用的控件组。 

 

Failed”数据项表示 Windows在其中保存失败启动产生的数据的控件组。 此控件组在用户第一次调用“最近一次的正确配置”选项之前并不实际存在。 

 

 

 

对应上面四个值,系统默认时其顺序是:001001002、无;

 

第一次使用“lastknowngood”后:002002003001

 

第二次使用“lastknowngood”后:003003004002(之前的备份001002覆盖掉,001组消失);

 

第三次使用“lastknowngood”后:004004001003002003覆盖,而当004要生成新的“lastknowngood”时,001正好可用,于是001重生,002消失);

 

 

 

当大家使用了“最近一次的正确配置”之后,ControlSet001被认为时错误的配置被封存起来(001记录在在Failed中,不使用了),而用ControlSet002启动,相应生成ControlSet003作为“最近一次的正确配置”,002取代了001的位置,003又取代了002的位置。按上面所说,这些ControlSet会循环使用,最多也就4个,分别为001002003004

 

 

 

关于“CurrentControlSet”和“ControlSet00?”这两个键,究竟他们是怎样的关系呢?为什么更改ControlSet001的内容和权限,CurrentControlSet就会作同样的修改呢?反之也是这样,为什么呢?

 

ControlSet001是你最后成功启动的控制配置,而ControlSet002就是最后一次正确的控制配置,或者说是最后一次使操作系统成功启动的控制配置。CurrentControlSet呢,就是一个指向其中一个ControlSetXXXXXX001002003004)的一个键。他就好像一个镜像,显示ControlSetXXX里的东西。

 那么为什么要设置CurrentControlSet键呢?这么麻烦还要指向。Windows启动的时候,启动的信息并不是每次都是ControlSet001的,而根据你系统是否有出现过错误启动的情况,还可能会是ControlSet002ControlSet003ControlSet004, 而CurrentControlSet作为对本次正确启动的控制配置的指向者,使得应用程序不必考虑在下一次启动过程中用的是几号控件组,方便了程序,应用程序不必根据情况自己判断应该写入哪号的ControlSet,而是向CurrentControlSet写入信息就可以了,因为 CurrentControlSet会履行指向的职责。

这篇文章对你多有用?

用户评语

添加评语
当前还没有评语.


.: .: .: .: .:
[ 登陆 ]
北京护航科技有限公司 2006

Novots Technologies Limited