注册表虚拟化失败

Registry virtualization failing

我有一个 32 位程序试图访问 Windows 64 位设置 运行 Windows 8.1 中存储在 HKLM\Software\Microsoft\VisualStudio 中的密钥。

通常它工作得很好,它实际上会从 Software\Wow6432Node 中读取该密钥。

但是我有一台机器(看起来与其他机器没有什么不同)读取失败。当我使用 Process Monitor 查看注册表访问时,它显示它正在尝试从 VirtualStore 读取它,但它不存在,因此失败。

为什么 Windows 没有像在其他安装中那样向我的应用程序显示合并视图?

谢谢, 马努

虚拟商店是随UAC引入的兼容机制,与WOW64没有直接关系。当未声明自己与 Windows Vista 兼容的程序尝试创建密钥或文件但无权访问时,Windows 会将写入重定向到虚拟存储。从那时起,打开该密钥或文件的尝试将自动重定向到虚拟商店。

为避免被重定向到另一个应用程序可能创建的虚拟商店密钥或文件,请使用清单声明您的应用程序与 Windows Vista 兼容。