下有多个名称中带有“ControlSet”的分支HKEY_LOCALMACHINE\SYSTEM
。
Windows 使用这 3 个键的方式有哪些根本区别?
HKLM\System\ControlSet001
HKLM\System\ControlSet002
HKLM\System\CurrentControlSet
答案1
微软说得最好KB100010
回到 Windows(我认为是 95),您可以将任何驱动程序/硬件组件设置为仅在某种设置模式下工作,用户可在启动时选择该模式。
默认情况下,你有
\ControlSet001-上次启动
\ControlSet002 - 已知良好设置
\CurrentControlSet-当前启动
编辑 -
看起来这是最近才被拿出来,我个人从 95 年起就没用过它,不过,我找到了一个可以从 Windows XP 向您展示它的好网站。
从系统属性:
从设备管理器中:
答案2
ControlSet
Windows在注册表中至少维护两个条目。您可能拥有 和或ControlSet001
中的一个(或两个)。ControlSet002
ControlSet003
它们之间没有明显的差异;它们保存了有关系统硬件、服务和其他系统设置的重要信息,这些信息对于启动和运行系统是必需的,并且通常是相同的。
该CurrentControlSet
项目是最容易描述的:它只是映射到ControlSet###
您当前正在使用的任何一个,就像如何HKEY_CURRENT_USER
映射到HKEY_USERS
分支中当前处于活动状态的任何用户一样。当然,您所做的任何更改CurrentControlSet
都将写入它所映射到的集合。
您拥有多个控制集的原因是,当您更改系统功能(尤其是硬件)时,系统可能无法正常工作。如果启动所需的信息只有一个副本,并且启动失败,那么您就会遇到麻烦,因为尝试修复问题需要大量工作(如果不是整个系统,至少需要单独的操作系统)。相反,对一个控制集进行更改,如果 Windows 无法成功启动,您可以使用另一个更改前的控制集重新启动。这样,至少您可以快速恢复运行,以便您可以使用系统(和互联网)找出问题所在。
当你做设法正确启动,更改被写入另一个副本,从而使其保持最新状态(我相信它发生在关机时或某个时候;只是不是在看似成功的启动之后立即启动,因为它可能有也可能没有实际上成功)。
有些人将两个控制集误解为“正常”和“备用”。从某种意义上说,这是正确的,但实际上,您可以从其中任何一个启动。没有主集或次集,它们可以循环使用。换句话说,如果您通常使用ControlSet001
,然后启动失败,那么现在您可以ControlSet002/003
正常使用,直到下次启动失败时,您将切换回来。