| 
			 
					阅读:1011回复: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  | 
	|
					
						
  |