C-从阴影副本中重载到蜂巢文件



我正在创建一个影子副本,我想使用RegLoadKey()从该影子副本中安装一个注册表,因此我使用普通注册表功能浏览其内容。
除了某些根本不起作用的机器外,这通常效果很好。

我创建阴影副本并获取其安装点 - 类似
\?GLOBALROOTDeviceHarddiskVolumeShadowCopy8
然后我打电话

RegLoadKeyW(HKEY_LOCAL_MACHINE, "\?GLOBALROOTDeviceHarddiskVolumeShadowCopy8WindowsSystem32configSOFTWARE", "mntpoint");

此呼叫返回1009 - The configuration registry database is corrupt.

如果我使用CreateFileW(),我可以成功使用该路径打开此文件,因此它肯定在那里。

我已经确保使用注册表作者创建影子副本,所以我认为这不是问题。
如果我创建影子副本并在重新启动后尝试一下没有区别。
这仅发生在某些机器上。在大多数情况下,它可以正常工作。我不确定它无法使用的机器有什么区别。
机器是Windows 2008 64位。

事实证明,问题是要使用RegLoadKeyW()加载的Hive需要在可写的地方。由于影子副本仅读取,因此失败了。
当我在阴影副本外复制安装的文件时,它可以正常工作。

您是否在创建阴影副本的同一台计算机上加载?

regloadKeyw()备注之一说:

有两种注册表hive文件格式。较早的注册表通常无法加载当前操作系统上的注册表。

相关内容

  • 没有找到相关文章

最新更新