【发布时间】:2012-10-09 02:40:07
【问题描述】:
我正在创建一个卷影副本,我想使用 RegLoadKey() 从该卷影副本装载一个注册表配置单元,因此我使用正常的注册表函数检查其内容。
这通常工作得很好,除非在某些机器上根本不工作。
我创建卷影副本并获取其挂载点 - 类似于\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8
然后我打电话给
RegLoadKeyW(HKEY_LOCAL_MACHINE, "\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\Windows\System32\config\SOFTWARE", "mntpoint");
此调用返回1009 - The configuration registry database is corrupt.
如果我使用CreateFileW(),我可以使用该路径成功打开此文件,因此它肯定存在。
我已确定卷影副本是使用注册表编写器创建的,所以我认为这不是问题。
如果我创建卷影副本并在重新启动后尝试此操作没有区别。
这只发生在某些机器上。大多数情况下它工作得很好。我不确定它无法在哪些机器上运行。
机器是windows 2008 64位的。
【问题讨论】:
-
澄清一下,这在某些机器上始终有效,而在其他机器上始终失败?您可以确定任何常见因素吗?
-
是的,两者都是一致的。如前所述,“我不确定它无法在哪些机器上运行”
标签: c windows registry backup shadow-copy