【问题标题】:KEY_WOW64_32KEY and KEY_WOW64_64KEYKEY_WOW64_32KEY 和 KEY_WOW64_64KEY
【发布时间】:2012-09-29 13:59:50
【问题描述】:

除了MSDN reference,我想知道这些键有什么作用? KEY_WOW64_32KEY 是否意味着 x64 操作系统上的 32 位应用程序将访问 WOW64 注册表树KEY_WOW64_64KEY 是否意味着 x64 操作系统上的 32 位应用程序将访问正常的注册表树而不是 WOW64 注册表树?如果我必须访问一些我不知道是在 WOW64 还是普通注册表树中的键怎么办?

【问题讨论】:

    标签: windows winapi registry registrykey registry-virtualization


    【解决方案1】:
    • KEY_WOW64_64KEY 在 64 位操作系统上意味着 注册表访问,无论是 32 位还是 64 位进程,都将访问 64 位注册表视图。

    • KEY_WOW64_32KEY 在 64 位操作系统上意味着 注册表访问,无论是 32 位还是 64 位进程,都将访问 32 位注册表视图。

    • 它们都对 32 位操作系统没有任何影响。

    • 在 64 位操作系统上保留该标志(默认)会将注册表访问从 32 位进程发送到 32 位注册表视图,并将从 64 位进程的访问发送到 64 位注册表视图。

    如需更多信息,this reference page at Microsoft 应该会讲述整个故事。

    【讨论】:

    • 根据您提供的参考资料,RegDeleteKey 不能用于访问备用注册表配置单元。如果platform = x64, app = x86, RegOpenKeyEx with samDesired as KEY_WOW64_64KEY,我把打开的64Key的句柄传给RegDeleteKey,那它会删除指定的key吗?
    • @user1696837 是的,如果您已经打开了 64 位注册表的 HKEY,RegDeleteKey 将起作用(目前)。我不知道,如果保证将来会出现这种情况,推荐的方法肯定是带有KEY_WOW64_64KEY 标志的RegDeleteKeyEx。
    【解决方案2】:

    来自链接参考:

    欲了解更多信息,请参阅Accessing an Alternate Registry View.

    上面写着:

    • KEY_WOW64_64KEY:从 32 位或 64 位应用程序访问 64 位密钥。

    • KEY_WOW64_32KEY:从 32 位或 64 位应用程序访问 32 位密钥。

    【讨论】:

    • 根据您提供的参考资料,RegDeleteKey 不能用于访问备用注册表配置单元。如果platform = x64, app = x86, RegOpenKeyEx with samDesired as KEY_WOW64_64KEY,我把打开的64Key的句柄传给RegDeleteKey,那它会删除指定的key吗?
    猜你喜欢
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    相关资源
    最近更新 更多