| 
			 
					阅读:1360回复:4
				 
				irp下传和完成问题
					沿设备栈下传本层不处理的irp时,需要完成irp吗?还是只调用iocalldriver就行了。如果上层驱动程序不调用IoCompleteRequest
 
							下层驱动程序可以自动完成irp吗?  | 
	|
					
						
						
						
						
  | 
	
| 
			 沙发# 
								发布于:2003-05-24 09:36				
			
					谢了,老大 :D				 
							 | 
	|
					
						
  | 
	
| 
			 板凳# 
								发布于:2003-05-24 00:38				
			当你不关心下层驱动完成状态时,需要等待下层驱动完成吗?DDK中有例子向下传递IRP时只调用IOCALLDRIVER,然后就RETURN了,没有等待下层驱动完成 可以不等待irp的完成,直接返回 在第五章我解释了向驱动程序堆栈下层传递IRP的两种情况:一种情况你关心IRP的结果,因此你需要一个完成例程,另一种情况你不关心IRP的结果,因此也不需要安装一个完成例程。有许多PnP请求属于第二类,你收到这样的IRP,然后把它们向下传递,不关心该IRP以后的情况。因此,我建议你写一个辅助函数,该函数以“发射后不管”的方式下传IRP,代码见下面。 --Walter Oney 看书不仔细啊 :D [编辑 - 5/24/03 by mailme]  | 
	|
					
						
  | 
	
| 
			 地板# 
								发布于:2003-05-23 10:23				
			
					当你不关心下层驱动完成状态时,需要等待下层驱动完成吗?DDK中有例子向下传递IRP时只调用IOCALLDRIVER,然后就RETURN了,没有等待下层驱动完成				 
							 | 
	|
					
						
  | 
	
| 
			 地下室# 
								发布于:2003-05-22 11:15				
			
					如果要继续向下传IRP,该用IoSetCompletionRoutine设置完成例程,只有当完成了IRP,并将它返回到I/O管理器的时候
 
							才调用IoCompleteRequest  | 
	|