1

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

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

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

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

谢谢,马努

4

1 回答 1

2

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

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

于 2015-03-24T21:47:30.020 回答