| 
			 
					阅读:2242回复:5
				 
				关于 IRP_MJ_INTERNAL_DEVICE_CONTROL 的几个小问题!!!1,IRP_MJ_INTERNAL_DEVICE_CONTROL : DriverEntry设置的这个入口 在什么情况下才会执行? 2,对这个主功能码 的使用 有什么限制 ? 是不是只能在某个层次的驱动程序才能使用? 还是 所有的功能驱动,mini-driver ,filter 驱动 都能够使用啊/?? :(  | 
	|
					
						
						
						
						
  | 
	
| 
			 沙发# 
								发布于:2003-01-15 12:35				
			
					------------------------------
 
							1,IRP_MJ_INTERNAL_DEVICE_CONTROL : DriverEntry设置的这个入口 在什么情况下才会执行? ----------------------------- 一个驱动向另一个驱动发送自定义的IRP时使用。 --------------------------- 2,对这个主功能码 的使用 有什么限制 ? 是不是只能在某个层次的驱动程序才能使用? 还是 所有的功能驱动,mini-driver ,filter 驱动 都能够使用啊/?? --------------------------- 没限制。  | 
	|
| 
			 板凳# 
								发布于:2003-01-15 15:01				
			
					   谢谢  tjm
 
							我觉得一个顶层 的和 应用程序接口的 驱动程序并不用处理这个 功能代码吧?? :( 如果可以, 能不能举个简单的例子说明一下?? :) 稍侯给分! :)  | 
	|
					
						
  | 
	
| 
			 地板# 
								发布于:2003-01-15 19:14				
			
					目前该功能好像主要用于 usb .
 
							在 USB 体系中,驱动程序收到 irp_mj_write 之后,就会创建一个 IRP_MJ_INTERNAL_DEVICE_CONTROL 得主功能码往下传. oney 得那本书讲得很清楚. ;)  | 
	|
					
						
  | 
	
| 
			 地下室# 
								发布于:2003-01-15 20:51				
			
					有些驱动必须处理这个IRP,例如MINIDRIVER,某些FILTER,最好的离子就是HID的MINIDRIVER。
 
							有些程序是可选择的,如果你有两个驱动,他们之间需要通信,一种方法就是构建一个自己定义的IRP,用IOCALLDRIVER,发送出去,发出的就是IRP_MJ_INTERNAL_DEVICE_CONTROL,接受的一方就从IRP_MJ_INTERNAL_DEVICE_CONTROL中得到详细信息。从这个用途讲,是否在顶层并无多大关系。 如果你不是在顶层又不处理这个IRP,而你所处战中有驱动发出INTERNAL_DEVICE_CONTROL,我不清楚会发生什么。 根据IRP的传送方向,在顶层的驱动如果没有横向通信的需要,可能不许要处理这个IRP。 不过,我通常都处理这个IRP,以及SYSTEM-CONTROL IRP,反正向下传就是了。  | 
	|
| 
			 5楼# 
								发布于:2003-01-16 09:58				
			
					谢谢tjm , lvwj , 
 
							找 oney 的书翻翻 先, 慢慢体会 :) 给分 :)  | 
	|
					
						
  |