有没有办法在 Windows NT 平台 (XP-W7) 上从内核模式创建用户模式进程?
编辑:我必须只安装驱动程序。这是项目的具体情况。
要创建有效的 win32 进程,驱动程序必须与 CSRSS 进行通信(完全没有记录)。所以我最终通过排队一个用户模式 APC 并在现有 win32 进程的上下文中为 APC 代码分配虚拟内存(该代码将调用 CreateProcess 并完成这项工作)。
这是一个棘手的方法,但它有效。
我不知道实现这一目标的更简单方法。但是,如果运行 Windows 服务,将重叠的 DeviceIoControl 放入您的驱动程序中呢?返回时,服务可以检查它从驱动程序接收到的数据并启动相应的应用程序。
这不能直接完成 - 创建一个 win32 进程需要 CreateProcess 的用户模式部分进行一些设置,而不仅仅是在内核模式下创建进程对象。
您需要一些用户模式代码 - 服务、桌面应用程序等,以启动您的用户模式应用程序。