我正在为我们的司机团队构建一个硬件模拟器。现在,模拟器分为 2 个模块:第一个模块在驱动程序中运行,在内核模式下,这是驱动程序和硬件模拟器之间的主要接口。第二个模块是一个可执行的用户模式代码,它为模拟器生成数据并通过调用DeviceIOControl
(在 windows API 下)将其传输到模拟器
我的需要是:我希望能够从内核模式中执行用户模式可执行文件。而且我需要能够以相对便携的方式做到这一点。目前我只在 Windows 上运行,但这应该很快就会改变。此外,我需要能够通过它的stdin
管道与用户模式代码进行通信,以便重新配置它并最终关闭它。
我发现了这个: Executing a user-space function from the kernel space
但它只与 linux 内核有关。有没有更便携的选择?还是windows的替代品?
我可以通过简单地使用 ShellExecute/RunAs API 函数在 Windows 中执行此操作吗?
注意:我们知道从内核空间调用用户模式代码所涉及的安全风险。但由于这只是用作测试环境并且永远不会到达我们的发布代码,所以我们并不担心。