阅读:1765回复:6
KeWaitForSingleObject不返回,请教
在提交Irp并返回未决状态(STATUS_PENDING)时,有一个调用KeWaitForSingleObject来等待URB完成,但是为什么读和写时总是不返回,而其他像获取描述符或设置接口等操作都能够成功完成,为什么呢? 请高手指点一二
|
|
沙发#
发布于:2007-09-27 14:55
应该是固件程序的原因,再说,读写一般不需要在驱动中去使用KeWaitForSingleObject,直接设置为完成状态就行了,然后在WIN32下用WaitForSingleObject去等待
|
|
板凳#
发布于:2007-09-27 15:16
多谢,可是直接设置完成的话,会出现0xD1 DRIVER_IRQL_NOT_LESS_OR_EQUAL 蓝屏,不知道你说的在win32下设置WaitForSingleObject能否解决这个问题。 我现在还是先解决不返回这个问题,先试着改下固件。
|
|
地板#
发布于:2007-09-27 16:20
还是搞不懂啊,不知道要用什么样的固件, 我用的是EZUSB开发版,里面有很多固件例子可是我下载任何一个到开发板都还是不返回, 请指点,多谢
|
|
地下室#
发布于:2007-11-02 18:40
增加超时机制,一段时间不返回则cancel该IRP。如果此irp来自上面,则失败之
|
|
5楼#
发布于:2007-11-02 18:47
读写的为什么用同步IRP呢?
|
|
6楼#
发布于:2009-02-23 18:16
为什么没有解决这个问题呢,我也是这个问题,用DriverStudio写的驱动KeWaitForSingleObject能返回,而用ddk框架写的驱动KeWaitForSingleObject就永远阻塞,永远不返回!
![]() |
|