wavelight
驱动老牛
驱动老牛
  • 注册日期2002-08-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2171回复:5

关于 IRP_MJ_INTERNAL_DEVICE_CONTROL 的几个小问题!!!

楼主#
更多 发布于:2003-01-15 12:05

   1,IRP_MJ_INTERNAL_DEVICE_CONTROL : DriverEntry设置的这个入口  在什么情况下才会执行?
 
   2,对这个主功能码 的使用 有什么限制 ? 是不是只能在某个层次的驱动程序才能使用?  还是 所有的功能驱动,mini-driver ,filter 驱动 都能够使用啊/??  :(
<table style="filter: glow(color=red, strength=6)"><br><font color=white><b>我cool 故我在!<br></b></font></table> [img]http://www.driverdevelop.com/forum/upload/wavelight/2002-12-13_1.gif[/img]<table style="filter: glow(color=red, strength=6)"><br><font color=white><b>我在 故我cool!<br></b></font></table>
tjm
tjm
驱动小牛
驱动小牛
  • 注册日期2002-05-18
  • 最后登录2004-10-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-15 12:35
------------------------------
1,IRP_MJ_INTERNAL_DEVICE_CONTROL : DriverEntry设置的这个入口 在什么情况下才会执行?
-----------------------------

一个驱动向另一个驱动发送自定义的IRP时使用。


---------------------------
2,对这个主功能码 的使用 有什么限制 ? 是不是只能在某个层次的驱动程序才能使用? 还是 所有的功能驱动,mini-driver ,filter 驱动 都能够使用啊/??
---------------------------
没限制。
wavelight
驱动老牛
驱动老牛
  • 注册日期2002-08-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-15 15:01
   谢谢  tjm
  
  我觉得一个顶层 的和 应用程序接口的 驱动程序并不用处理这个 功能代码吧??   :(

    如果可以, 能不能举个简单的例子说明一下??  :)

   稍侯给分! :)
<table style="filter: glow(color=red, strength=6)"><br><font color=white><b>我cool 故我在!<br></b></font></table> [img]http://www.driverdevelop.com/forum/upload/wavelight/2002-12-13_1.gif[/img]<table style="filter: glow(color=red, strength=6)"><br><font color=white><b>我在 故我cool!<br></b></font></table>
lvwj
驱动老牛
驱动老牛
  • 注册日期2001-08-21
  • 最后登录2021-01-31
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望181点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-01-15 19:14
目前该功能好像主要用于 usb .
在 USB 体系中,驱动程序收到 irp_mj_write 之后,就会创建一个 IRP_MJ_INTERNAL_DEVICE_CONTROL 得主功能码往下传.
oney 得那本书讲得很清楚.
 ;)
www.bjjcz.com
tjm
tjm
驱动小牛
驱动小牛
  • 注册日期2002-05-18
  • 最后登录2004-10-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于: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,反正向下传就是了。
wavelight
驱动老牛
驱动老牛
  • 注册日期2002-08-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-01-16 09:58
谢谢tjm , lvwj ,

找 oney 的书翻翻 先,  慢慢体会   :)

给分  :)
<table style="filter: glow(color=red, strength=6)"><br><font color=white><b>我cool 故我在!<br></b></font></table> [img]http://www.driverdevelop.com/forum/upload/wavelight/2002-12-13_1.gif[/img]<table style="filter: glow(color=red, strength=6)"><br><font color=white><b>我在 故我cool!<br></b></font></table>
游客

返回顶部