阅读:2850回复:5
版主求助,PCI驱动ISR里使用KeSetEvent死锁疑问
版主好,求求帮帮我,
驱动设计是这样的,启动一次数据DMA传输,传输完成以后,在DMA完成中断的中断服务例程ISR中调用KeSetEvent,触发事件,主线程KeWaitForSingleObject函数响应。 现在的问题是,运行一段时间后2分钟左右 主线程运行到KeWaitForSingleObject函数就死锁(现象:系统死机,不重启、不蓝屏、CPU不是100%) 分析快一个星期了,没有找到原因,帮帮我,谢谢谢谢 |
|
沙发#
发布于:2009-10-24 22:20
回 2楼(iwasmu) 的帖子
谢谢您热心回帖,通过以上机制来同步可能还存在问题,我见过很多人这么用都有问题,即使把KeSetEvent 放在中断延迟调用里也是一样, 现在采用多加入一个队列的方法,把处理以后的IRP放入另外一个队列, 等待DMA中断以后,从该队列中取出IRP ,完成IRP , 结果很好, 再次谢谢你 |
|