回答
要創建一個有效的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. Windows驅動程序創建
- 2. 創建驅動程序
- 3. 創建Windows驅動程序
- 4. 無法從NHibernate.Driver.NpgsqlDriver創建驅動程序
- 5. 無法從NHibernate.Driver.SQLiteDriver創建驅動程序
- 6. 內核驅動程序從進程ID讀取進程內存
- 7. 創建循環js驅動程序
- 8. 創建驅動程序和固件
- 9. C#for Windows驅動程序創建?
- 10. HOOPS:2d pdf驅動程序未創建
- 11. 如何創建計算驅動程序?
- 12. 創建Windows打印驅動程序
- 13. 爲定製驅動程序創建GraphicsDevice
- 14. 從VS2013構建XP驅動程序
- 15. 構建驅動程序
- 16. 如何創建一個.exe驅動程序安裝程序
- 17. geb.driver.DriverCreationException:無法從回調創建驅動程序
- 18. 無法從Mono中的NHibernate.Driver.MySqlDataDriver創建驅動程序
- 19. geb.driver.DriverCreationException:無法從回調中創建驅動程序
- 20. 從neo4j驅動程序密碼查詢中創建一個iGraph
- 21. Windows驅動程序編程或Linux驅動程序編程?
- 22. 當驅動程序內置驅動程序時,驅動程序不工作
- 23. 將驅動程序從JTDS更改爲MS SQL驅動程序時出錯驅動程序
- 24. Selenium遠程驅動程序與HtmlUnit驅動程序問題
- 25. 事件驅動的線程創建
- 26. Java驅動程序?
- 27. Filemaker.Net驅動程序
- 28. 錯誤創建DBI驅動程序來啓動JDBC連接的Teradata從r
- 29. KMDF驅動程序構建2008
- 30. 構建Qt PostgreSql驅動程序
我正在考慮用我自己的用戶模式代碼向驅動程序的某些用戶進程注入一個線程... – 2009-08-28 09:11:56
請看http://www.codeproject.com/KB/system/KernelExec.aspx。有趣... – 2009-10-26 12:13:20