zshuc
驱动小牛
驱动小牛
  • 注册日期2001-08-16
  • 最后登录2012-04-19
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1134回复:5

请教WIN 2000下IRP分派的问题?

楼主#
更多 发布于:2003-01-07 12:52
在win2000下,很多请求都是通过PnP来派发的,
比如IoStack->MinorFunction下的这些:
IRP_MN_START_DEVICE;
IRP_MN_QUERY_REMOVE_DEVICE;
IRP_MN_REMOVE_DEVICE;
IRP_MN_CANCEL_REMOVE_DEVICE
等等,那这些irp所对应的消息是什么东东发出来的呢?MinorFunction不需要我来配置,象以上这些消息有什么用呢?比如IRP_MN_START_DEVICE;是什么进行管理的啊?
大家好!
yyhabc
驱动小牛
驱动小牛
  • 注册日期2003-01-06
  • 最后登录2013-03-18
  • 粉丝0
  • 关注0
  • 积分327分
  • 威望47点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-07 15:05
有两个部件设置这些东西,你上层的驱动或者系统的I/O Maneger.IRP_MN_START_DEVICE是系统通知你做你应该做的启动设备的动作。这些都是预定义的宏。
zshuc
驱动小牛
驱动小牛
  • 注册日期2001-08-16
  • 最后登录2012-04-19
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-07 15:44
楼上的,谢谢了,我知道这些都是预定的宏,我想知道的是这些宏是根据什么消息产生的,我看的源码中这些东西都是在PnP管理中利用IoStack->MinorFunction来探测的,由PnP管理器来知道是发来了那一个消息,可是这些消息最初是由上层的驱动怎样产生呢?
大家好!
yyhabc
驱动小牛
驱动小牛
  • 注册日期2003-01-06
  • 最后登录2013-03-18
  • 粉丝0
  • 关注0
  • 积分327分
  • 威望47点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-01-07 16:03
这些东西应该是系统产生的,比如,你拔下一个设备,系统就会有代码来为拔掉的设备产生相应的IRP,并调用相应的驱动程序,在她调用第一个驱动程序时,IOstack里的这个域已经设置,在你自己的驱动里,你可以改下层的驱动的这个域,这么做非常不安全。你也可以自己建立一个IRP在它的这个域内设置PnP代码,这就欺骗了下层驱动。
zshuc
驱动小牛
驱动小牛
  • 注册日期2001-08-16
  • 最后登录2012-04-19
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-01-07 16:18
楼上的,谢谢了,呵呵!
我可不可以不处理这些消息。。。或者是那些应该处理那些可以选择处理的.
大家好!
yyhabc
驱动小牛
驱动小牛
  • 注册日期2003-01-06
  • 最后登录2013-03-18
  • 粉丝0
  • 关注0
  • 积分327分
  • 威望47点
  • 贡献值0点
  • 好评度21点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-01-07 16:20
有些必须处理,有些可以不处理。具体见DDK.
游客

返回顶部