Accessing an Alternate Registry View
By default, a 32-bit application running on WOW64 accesses the 32-bit registry view and a 64-bit application accesses the 64-bit registry view. The following flags enable 32-bit applications to access redirected keys in the 64-bit registry view and 64-bit applications to access redirected keys in the 32-bit registry view. These flags have no effect on shared registry keys. For more information, see Registry Keys Affected by WOW64.
|KEY_WOW64_64KEY||0x0100||Access a 64-bit key from either a 32-bit or 64-bit application.|
|KEY_WOW64_32KEY||0x0200||Access a 32-bit key from either a 32-bit or 64-bit application.|
These flags can be specified in the samDesired parameter of the following registry functions:
Either KEY_WOW64_32KEY or KEY_WOW64_64KEY can be specified. If both flags are specified, the function fails with ERROR_INVALID_PARAMETER.
Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP: If both flags are specified, the function’s behavior is undefined.
The RegDeleteKey function cannot be used to access an alternate registry view.
The following are best practices when accessing the registry from an application:
- After the application has accessed an alternate registry view using one of the flags, all subsequent operations (create, delete, or open) on child registry keys must explicitly use the same flag. Otherwise, there can be unexpected behavior.
- To accurately enumerate all keys in both views, perform the enumeration in two passes. The first pass should use a handle opened with one of the flags, and the other pass should use a handle opened with the other flag.
For information about accessing the alternate registry view through WMI, see Requesting WMI Data on a 64-bit Platform.