Windows 如何将数据放入WOW64';是否从NT本机API查看32位注册表?
我有一个应用程序,其中限制我使用Windows 如何将数据放入WOW64';是否从NT本机API查看32位注册表?,windows,winapi,registry,nt-native-api,Windows,Winapi,Registry,Nt Native Api,我有一个应用程序,其中限制我使用NtCreateKey/ZwCreateKey函数。(例如,在驱动程序中)还有另一个我不控制的应用程序,它在WOW64下运行,它从这个注册表项读取一个值 我想设置注册表值,以便此应用程序可以找到它。但是,WOW64是在kernel32中实现的,因此我不能像使用RegOpenKeyEx时那样传递KEY\u WOW64\u 32KEY标志 最简单的方法似乎是在传递给ZwCreateKey的路径中包含Wow6432Node,但是: WOW64定义以下符号链接仅用于与可能
NtCreateKey
/ZwCreateKey
函数。(例如,在驱动程序中)还有另一个我不控制的应用程序,它在WOW64下运行,它从这个注册表项读取一个值
我想设置注册表值,以便此应用程序可以找到它。但是,WOW64是在kernel32
中实现的,因此我不能像使用RegOpenKeyEx
时那样传递KEY\u WOW64\u 32KEY
标志
最简单的方法似乎是在传递给ZwCreateKey
的路径中包含Wow6432Node
,但是:
WOW64定义以下符号链接仅用于与可能使用包含Wow6432Node
的硬编码注册表项路径的现有应用程序兼容。新应用程序应避免在注册表项路径中使用Wow6432Node
这似乎让我进退两难。。。如何在32位注册表视图中放置数据?MSDN语言说“避免”——这是一种不可避免的情况吗?在这种情况下使用
Wow6432Node
对我来说似乎没问题。@JonathanPotter:我想是的,但我尽量避免做MSDN说不可能做的事情。我认为你不可能得到一个用户模式进程来代表你更改注册表?@Harry:没有。IPC是一堆我不想打开的蠕虫。再看一遍,我认为这是一个转发兼容性问题——也就是说,不使用Wow6432Node的唯一原因是它可能在未来的Windows版本中不起作用——而且设备驱动程序永远不能保证是转发兼容的。所以我不会太担心。