访问备用注册表视图

默认情况下,在 WOW64 上运行的 32 位应用程序将访问 32 位注册表视图,而 64 位应用程序将访问 64 位注册表视图。 以下标志使 32 位应用程序能够访问 64 位注册表视图中的重定向项,使 64 位应用程序能够访问 32 位注册表视图中的重定向项。 这些标志对共享注册表项没有影响。 有关详细信息,请参阅 受 WOW64 影响的注册表项

标志名称 说明
KEY_WOW64_64KEY 0x0100 从 32 位或 64 位应用程序访问 64 位密钥。
KEY_WOW64_32KEY 0x0200 从 32 位或 64 位应用程序访问 32 位密钥。
ARM 上的Windows 10:这是指 32 位 ARM 进程的 32 位 ARM 注册表视图,以及适用于 32 位 x86 和 64 位 ARM64 进程的 32 位 x86 注册表视图。

可以在以下注册表函数的 samDesired 参数中指定这些标志:

可以指定KEY_WOW64_32KEY或KEY_WOW64_64KEY。 如果同时指定了两个标志,则函数将失败并ERROR_INVALID_PARAMETER。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 如果同时指定了两个标志,则函数的行为是未定义的。

RegDeleteKey 函数不能用于访问备用注册表视图。

以下是从应用程序访问注册表时的最佳做法:

  • 应用程序使用标志之一访问备用注册表视图后, (创建、删除或打开子注册表项) 的所有后续操作都必须显式使用相同的标志。 否则,可能会有意外的行为。
  • 若要准确枚举这两个视图中的所有键,请在两次传递中执行枚举。 第一个传递应使用一个标志打开的句柄,另一个通道应使用与另一个标志一起打开的句柄。

注意

保留 Wow6432NodeWowAA32Node 密钥。 为了保持兼容性,应用程序不应直接使用这些密钥。

有关通过 WMI 访问备用注册表视图的信息,请参阅 在 64 位平台上请求 WMI 数据

注册表重定向程序

注册表反射