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

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

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

我正在考虑使用 KEY_WOW64_64KEY 强制我们的32位应用程序始终使用64位存储,但这个答案建议不要这样做。然后我想我们可以将.reg文件更改为指向32位存储,但评论这个答案建议不要假设密钥永远被称为”Wow6432Node“

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

0
额外 编辑
意见: 1

1 答案

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

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

1
额外
+1不要使用.reg文件,让安装程序做的工作是def
额外 作者 David Heffernan,