ControlSet001、 ControlSet002以及CurrentControlSet的作用:
這些控件組中包括了操作系統(tǒng)配置的信息,比方服務(wù)、驅(qū)動(dòng)、系統(tǒng)控制、枚舉信息等等。
ControlSet001、 ControlSet002以及CurrentControlSet的關(guān)系:
默認(rèn)情況下,ControlSet001是系統(tǒng)真實(shí)的配置信息??墒菫榱吮苊庑蛱柣靵y,windows啟動(dòng)時(shí)會(huì)從ControlSet001復(fù)制一份副 本,作為操作系統(tǒng)當(dāng)前的配置信息。也就是CurrentControlSet。
我們對于計(jì)算機(jī)配置所作的改動(dòng)都是直接寫入到 CurrentControlSet,在重新啟動(dòng)過程中。windows會(huì)用CurrentControlSet的內(nèi)容覆蓋掉ControlSet001。以 保證這兩個(gè)控件組一致。
當(dāng)操作系統(tǒng)每成功啟動(dòng)一次(指成功登錄),它都將CurrentControlSet和ControlSet001中的數(shù)據(jù)拷貝到 ControlSet002中。這樣,ControlSet002就成了“近期一次成功啟動(dòng)的配置信息”(非常熟悉吧?在啟動(dòng)windows前按下F8所調(diào) 出的菜單中有這個(gè)選項(xiàng))。所以我們一般系統(tǒng)注冊表中都僅僅是有這三個(gè)控件組,而且序號都是current、001和002。
可是,這個(gè)順序和數(shù)目不是一成不變的。改變就發(fā)生在使用過“近期一次的正確配置”之后。這個(gè)時(shí)候,系統(tǒng)會(huì)把002當(dāng)作系統(tǒng)真實(shí)的配置信息。而001這個(gè)存 在問題的控件組會(huì)被備份封存起來。系統(tǒng)啟動(dòng)時(shí)會(huì)從002復(fù)制副本到current。啟動(dòng)成功后又會(huì)把002和current的信息復(fù)制一份到一個(gè)新的控件 組作為新的“近期一次的正確配置”,也就是003。這個(gè)時(shí)候系統(tǒng)就存在4個(gè)控件組:current、002、003和備份的001,這里的001是一個(gè)存 在問題的組,除非我們想把系統(tǒng)恢復(fù)到上次使用“近期一次正確配置”之前的狀態(tài),否則001的內(nèi)容將不再被使用。
HKLM\system注冊表項(xiàng)中另一個(gè)select的子項(xiàng),當(dāng)中有幾個(gè)整數(shù)鍵,各自是:
“Current”數(shù)據(jù)項(xiàng)目表示 Windows XP 在這次啟動(dòng)過程中使用的控件組。
“Default”數(shù)據(jù)項(xiàng)目表示 Windows XP 在下次啟動(dòng)時(shí)將使用的控件組。它與這次啟動(dòng)使用的控件組同樣。
“LastKnownGood ”數(shù)據(jù)項(xiàng)目表示您在啟動(dòng)過程中選擇“近期一次的正確配置”時(shí) Windows XP 將使用的控件組。
“Failed”數(shù)據(jù)項(xiàng)表示 Windows XP 在當(dāng)中保存失敗啟動(dòng)產(chǎn)生的數(shù)據(jù)的控件組。 此控件組在用戶第一次調(diào)用“近期一次的正確配置”選項(xiàng)之前并不實(shí)際存在。
相應(yīng)上面。系統(tǒng)默認(rèn)時(shí)其順序是:001、001、002、無;
第一次使用“lastknowngood”后:002、002、003、001
第二次使用“lastknowngood”后:003、003、004、002(之前的備份001被002覆蓋掉,001組消失)
第三次使用“lastknowngood”后:004、004、001、003(002被003覆蓋,而當(dāng)004要生成新的“lastknowngood”時(shí)。001正好可用,于是001重生。002消失)
等等,第四次1、1、2、4,第五次2、2、3、1…………