阅读:1294回复:5
Event句柄传递到驱动程序,出现问题
应用程序CreateEvent, 并且CreateThread,等待该Event。
将Event句柄通过IOCtrl传递到驱动程序,驱动程序CreateThread,在该线程中SetEvent,应用程序线程不能退出等待状态,请教为什么会这样,如何解决? 注:将Event句柄通过IOCtrl传递到驱动程序,驱动程序直接SetEvent,应用程序可以响应。 是否必须使用Named Event? |
|
论坛版主
|
沙发#
发布于:2005-08-04 15:14
应用起的线程不能退出你怎么又说应用可以响应呢?你怎么判断可以响应?按理说你这样用是不行的,用named event是一个办法,你可以试试。
|
|
板凳#
发布于:2005-08-04 17:30
应为应用程序的线程WaitSingleObject的TimeOut参数是INFINITE,所以如果驱动程序中的线程SetEvent能够起作用的话,应用程序的线程应该执行WaitSingleObject后面的语句,这就是应用程序响应该Event的意思。
|
|
论坛版主
|
地板#
发布于:2005-08-05 14:23
.....那里现在到底是什么状况呢?你能把问题说清楚一些吗?
|
|
地下室#
发布于:2005-08-05 16:33
现在的情况是:将Event句柄通过IOCtrl传递到驱动程序,驱动程序CreateThread,在该线程中SetEvent(这和直接在驱动程序中SetEvent不同),应用程序线程不能退出等待状态,请教为什么会这样,如何解决?
|
|
论坛版主
|
5楼#
发布于:2005-08-08 12:58
1.试试命名事件。
2.试试把事件句柄使用mapptrtoprocess映射到device.exe(这个句柄可以用GetCurrentProcess得到),然后再setevent。 另外,你用驱动createthread后,怎么把ioctl传来的事件句柄给这个线程的? |
|