reg___ControlSet001、ControlSet002以及CurrentControlSet

         [HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/TermService]  下记录着“系统服务”的相关设置。那么ControlSet001、ControlSet002、ControlSet有什么区别呢?

          默认情况下:

          ControlSet001:系统真实的配置信息。

          ControlSet:运行时配置。          windows启动时会从ControlSet001复制一份副 本,作为操作系统当前的配置信息。我们对于计算机配置所作的修改都是直接写入到 CurrentControlSet,在重启过程中,windows会用CurrentControlSet的内容覆盖掉ControlSet001,以 保证这两个控件组一致。

          ControlSet002:“最近一次成功启动的配置信息”。             当操作系统每成功启动一次(指成功登录),它都将CurrentControlSet和ControlSet001中的数据复制到 ControlSet002中。

----------------------------------------------------------------------------

          但是,这个顺序和数目不是一成不变的,改变就发生在使用过“最近一次的正确配置”之后。这个时候,系统会把002当作系统真实的配置信息,而001这个存 在问题的控件组会被备份封存起来。

          [HKEY_LOCAL_MACHINE/SYSTEM/system/select]  下记录着下次将要使用的配置:

          “Current”数据项目表示 Windows XP 在这次启动过程中使用的控件组。  
          “Default”数据项目表示 Windows XP 在下次启动时将使用的控件组,它与这次启动使用的控件组相同。  
         “LastKnownGood ”数据项目表示您在启动过程中选择“最近一次的正确配置”时 Windows XP 将使用的控件组。  
           “Failed”数据项表示 Windows XP 在其中保存失败启动产生的数据的控件组。 此控件组在用户第一次调用“最近一次的正确配置”选项之前并不实际存在。

在C语言中,要打开SYSTEM\ControlSet001\Services\usbvideo\Enum这个路径,你可以使用Windows API中的函数来实现。具体步骤如下: 1. 首先,你需要包含Windows API的头文件,例如windows.h。 2. 使用RegOpenKeyEx函数打开注册表中的HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\usbvideo\Enum路径。该函数的参数包括要打开的键的父键句柄、子键名称、保留参数等。 3. 如果RegOpenKeyEx函数返回成功,则可以使用RegQueryValueEx函数来获取键值。该函数的参数包括要查询的键的句柄、键值名称、保留参数等。 4. 最后,记得使用RegCloseKey函数关闭注册表键的句柄。 下面是一个简单的示例代码: ```c #include <stdio.h> #include <windows.h> int main() { HKEY hKey; LONG result; // 打开注册表键 result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\\ControlSet001\\Services\\usbvideo\\Enum", 0, KEY_READ, &hKey); if (result != ERROR_SUCCESS) { printf("无法打开注册表键\n"); return 1; } // 查询键值 char valueData[256]; DWORD valueSize = sizeof(valueData); result = RegQueryValueEx(hKey, "键值名称", NULL, NULL, (LPBYTE)valueData, &valueSize); if (result != ERROR_SUCCESS) { printf("无法查询键值\n"); RegCloseKey(hKey); return 1; } // 输出键值 printf("键值:%s\n", valueData); // 关闭注册表键 RegCloseKey(hKey); return 0; } ``` 请注意,上述示例代码中的"键值名称"需要替换为你要查询的具体键值名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值