阅读:959回复:6
查询设备停止与删除?
请教各位大侠:
在处理查询设备停止或者删除的处理例程中, 怎么知道此时设备可以被停止或者删除? (有关资料说看是否有等待处理的IRP) 但具体怎么判断 小弟还是高不很清楚?! 只判断这一项就可以了吗? 还是还有别的条件限制啊? 小弟先谢谢了! |
|
|
沙发#
发布于:2005-01-08 14:27
你是在驱动里面还是应用程序里面
|
|
|
板凳#
发布于:2005-01-08 14:42
你是在驱动里面还是应用程序里面 就是在驱动程序里面啊。 处理IRP_MN_QUERY_STOP_DEVICE 或者IRP_MN_QUERY_REMOVE_DEVICE 如何处理那? |
|
|
地板#
发布于:2005-01-09 20:07
自己顶
|
|
|
地下室#
发布于:2005-01-10 09:19
看看有没有PENDING的IRP
|
|
|
5楼#
发布于:2005-01-10 10:07
看看有没有PENDING的IRP 只判断这一个条件吗? 如果这么处理。 那么是不是应该在设备扩展里面保存一个PENDING IRP计数器。 在每个处理IRP例程的开始让这个计数器加1。 处理完以后在减1。 查询删除或者停止时候,通过判断这个计数器的值是否为0, 来决定查询成功或者失败吧? 还有一点: 查询是否可以停止设备应该是查询设备的占有资源是否可以释放。 那么如果有penging irp是不是就决定了设备的现在资源不可以释放。 从而 就不能停止设备了。 反之,可以释放。 这样理解对吗? wowocock大侠。 谢谢了! :) |
|
|
6楼#
发布于:2005-01-11 15:21
顶一下
:D |
|
|