在32位应用程序上使用KEY_WOW64_64KEY的风险

时间:2011-11-07 03:11:01

标签: winapi

我们目前有一个32位应用程序,需要在使用前从注册表加载各种键/值对。

之前我们已经通过加载.reg作为安装的一部分来完成此操作。在64位Windows上运行它.reg组件最终在64位存储中,但我们的32位应用程序在32位存储中查找。

我在考虑使用KEY_WOW64_64KEY强制我们的32位应用程序始终使用64位存储,但是this answer建议不要这样做。然后我认为我们可以将.reg文件更改为指向32位存储,但comment on this answer建议不要假设密钥将始终被称为“Wow6432Node”

有没有任何可行的方法来执行此操作(除了将整个应用程序迁移到64位)?使用64位存储的32位应用程序有哪些风险?

1 个答案:

答案 0 :(得分:1)

只要您没有将HKEY句柄传递给期望x86 ==本机注册表的非Reg *函数,我认为没有任何风险。 (另一方面,文件系统重定向不是每个句柄,如果子函数调用LoadLibrary或CoCreateInstance等会导致问题)

如果使用KEY_WOW64_64KEY似乎太过分了,为什么不让(32位)安装程序写入注册表而不是使用.reg文件?这样做的唯一缺点是,如果您将来创建应用程序的x64版本,它将不会与x86版本共享设置。 (这可能是好事还是坏事)