回答
要创建一个有效的win32进程,驱动程序必须与CSRSS进行通信(完全没有记录)。所以我最后排队了一个用户模式的APC,并在现有的win32进程(该代码将调用CreateProcess并完成这项工作)的上下文中为APC代码分配虚拟内存。
这是一个棘手的方式,但它的工作原理。
我不知道一个更简单的方法来实现这一点。但是如果有一个Windows服务正在运行,它会在驱动程序中产生重叠的DeviceIoControl?返回时,服务可以检查从驱动程序收到的数据并启动相应的应用程序。
我会说这是正确的解决方案。从服务发出反向IRP,让驱动程序在需要启动用户模式过程时完成。 – 2009-07-16 06:37:12
感谢您的建议,但我无法运行我的服务(如果只有服务将被安装并从内核模式启动)。 – 2009-07-16 06:39:58
@Sergius:您必须安装驱动程序。您可以使用相同的INF文件安装该服务。 – 2009-07-16 06:48:00
这不能直接完成 - 创建一个win32进程需要一些CreateProcess的用户模式部分设置,而不仅仅是在内核模式下创建进程对象。
这里需要一些用户模式代码 - 服务,桌面应用程序等,以启动您的用户模式应用程序。
- 1. 创建驱动程序
- 2. Windows驱动程序创建
- 3. 无法从NHibernate.Driver.SQLiteDriver创建驱动程序
- 4. C#for Windows驱动程序创建?
- 5. 创建驱动程序和固件
- 6. HOOPS:2d pdf驱动程序未创建
- 7. 无法从Mono中的NHibernate.Driver.MySqlDataDriver创建驱动程序
- 8. 从neo4j驱动程序密码查询中创建一个iGraph
- 9. geb.driver.DriverCreationException:无法从回调中创建驱动程序
- 10. geb.driver.DriverCreationException:无法从回调创建驱动程序
- 11. 当驱动程序内置驱动程序时,驱动程序不工作
- 12. Selenium远程驱动程序与HtmlUnit驱动程序问题
- 13. Java驱动程序?
- 14. Filemaker.Net驱动程序
- 15. 构建Qt PostgreSql驱动程序
- 16. 虚拟驱动程序与Windows驱动程序模型 - 从哪里开始?
- 17. GPS中间驱动程序从虚拟串口驱动程序减慢数据
- 18. 从驱动程序启动应用程序
- 19. 推进:构建模式驱动程序无法
- 20. ODBC驱动程序13和ODBC驱动程序11
- 21. 驱动程序开发:卸载Windows驱动程序
- 22. QSqlDatabase:驱动程序未加载驱动程序未加载
- 23. 使用HSQLDB JDBC驱动程序的CSV SQL驱动程序
- 24. 使用驱动程序内部的驱动程序的Linux
- 25. 设备驱动程序vs驱动程序堆栈
- 26. Selenium 3.0壁虎驱动程序和木偶驱动程序
- 27. ODBC驱动程序(AcuODBC,MS Access驱动程序)
- 28. 找不到合适的JDBC驱动程序驱动程序
- 29. BIRT - 驱动程序不显示在管理驱动程序中
- 30. Microsoft PHP SQL驱动程序与PHP SQL驱动程序
我正在考虑用我自己的用户模式代码向驱动程序的某些用户进程注入一个线程... – 2009-08-28 09:11:56
请看http://www.codeproject.com/KB/system/KernelExec.aspx。有趣... – 2009-10-26 12:13:20