googol
驱动牛犊
驱动牛犊
  • 注册日期2001-08-16
  • 最后登录2005-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2381回复:9

过程是这样的吗?IO管理器通过IRP找到第一个device object.....

楼主#
更多 发布于:2001-12-02 22:48
IO管理器通过IRP找到第一个device object,在通过它找相应的驱动程序,以及设备对象堆栈中的下一个对象, 这个“下一个”该不会是放在next device 域中吧,要是的话,如果一个驱动程序支持两个但不属于同一个设备对象堆栈中的设备,这种的“下一个”该放在那呢?

最新喜欢:

baoyibao99baoyib...
Iamme
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2005-10-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-12-03 16:52
NextDevice域和设备栈没什么关系吧
Go,go ahead
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-12-03 17:07
是不是一个设备的多个(层)驱动和多个相同或相似设备使用同一个驱动程序的区别?
jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-12-04 14:22
IO管理器通过IRP找到第一个device object,在通过它找相应的驱动程序,以及设备对象堆栈中的下一个对象, 这个“下一个”该不会是放在next device 域中吧,要是的话,如果一个驱动程序支持两个但不属于同一个设备对象堆栈中的设备,这种的“下一个”该放在那呢?


老兄:
到底是:鸡生蛋,还是蛋生鸡?

你的理解不对阿!!
设备站到底是如何形成的,你可以看一下cant的书等你理解了这个问题,你就会明白irp,fdo,之间的关系的。



guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-12-04 21:50
在设备对象结构里,NEXTDEVICE指向的是驱动程序在创建该设备对象之前最近创建的的设备对象,如果该驱动程序只创建了一个设备对象,那么该值指向为NULL,在低层,系统就是通过设备的所属的驱动找到处理该IRP的处理函数的入口的
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-12-04 21:53
对于NDIS我就不太清楚了!不知道跟偶所说是不是一致呢,请那位高人补充
hustfyb
驱动牛犊
驱动牛犊
  • 注册日期2001-05-28
  • 最后登录2002-01-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-12-06 11:33
首先是根总线驱动程序枚举各个总线驱动,然后总线驱动去枚举挂在总线上的设备,如果发现设备会创建相应的pdo并载入驱动程序(如果驱动已经载入,会调用相应的adddevice例程),至于是哪个驱动程序和各个驱动(fdo,fido)的位置都是从注册表中得知
在ndis中不会直接去处理irp
再见了白云 永别了黄鹤
googol
驱动牛犊
驱动牛犊
  • 注册日期2001-08-16
  • 最后登录2005-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-12-07 21:31
to jeosph:
引用:
--------------------------------------------------------------------------------
你的理解不对阿!!
设备站到底是如何形成的,你可以看一下cant的书等你理解了这个问题,你就会明白irp,fdo,之间的关系的。

--------------------------------------------------------------------------------


是哪本书呀?在哪里能找到,谢谢

多谢各位指点




mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-12-07 21:52
cant 的书是指机械工业出版社的《windows wdm设备驱动程序开发指南》


另:to jyy:
我认为这“下一个”是指放在设备对象扩展中的NextDevice(设备对象扩展是自己定义的,一般都有相似功能的一个member),至于你说的当一个驱动对应多个设备时,那么设备驱动对象(DriverObject)只有一个,但是设备对象(DeviceObject)却有多个。每次加载新设备时都调用DriverEntry中曾定义过的AddDevice,从而形成多个设备对象,同时就是在这个例程中对每个设备对象扩展中的NextDevice进行付值。
mister
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2013-02-26
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望26点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-12-08 12:31
的),这个NextDevice是指使用同一驱动程序的下一个设备,它们形成了一个设备链,这个链的头部在驱动对象的DeviceObject中。
具体的你可以看一下Walter Oney的书,本站有它的中译本。
游客

返回顶部