I have an application where I am restricted to using the NtCreateKey
/ ZwCreateKey
function(s). (e.g. in a driver) There is another application I don't control which runs under WOW64, which reads a value from this registry key.
I want to set the registry value such that this application can find it. However, WOW64 is implemented in kernel32
-- so I can't pass the KEY_WOW64_32KEY
flag like I can when using RegOpenKeyEx
.
The easiest way seems to be to include Wow6432Node
in the path passed to ZwCreateKey
, but MSDN discourages this:
WOW64 defines the following symbolic links only for compatibility with existing applications that may use hardcoded registry key paths containing
Wow6432Node
. New applications should avoid using Wow6432Node in registry key paths.
This seems to put me between a rock and a hard place... how can I place data in the 32 bit registry view? The MSDN language says "avoid" -- is this a situation where Wow6432Node
is unavoidable?