注册表虚拟化失败

时间:2015-03-17 22:31:37

标签: windows registry-virtualization

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

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

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

Windows没有像我在其他安装中那样向我的应用程序展示合并视图的原因吗?

谢谢, 马努

1 个答案:

答案 0 :(得分:1)

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

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