zljabc
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2002-05-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1255回复:2

设备堆栈的疑问

楼主#
更多 发布于:2002-01-14 12:47
小弟在看DDK例子程序时,对下面涵数的第二个参数搞不懂。
IoAttachDeviceToDeviceStack(
       IN PDEVICE_OBJECT SourceDevice,
       IN PDEVICE_OBJECT TargetDevice
       );
它是堆栈最底层的真实物理设备对象吗?
各位大虾能讲讲总线设备对象,物理设备对象的关系吗?

如果在DriverEntry中调IoCreateDevice和IoAttachDeviceToDeviceStack,IoAttachDeviceToDeviceStack的第二个参数如何得到。
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-01-14 21:31
如果是PNP结构的驱动程序,那么在ADDDEVICE例程入口系统提供了一个PDEVICE_OBJECT类型的参数,这个参数就是这个函数的第二个参数
如果不是PNP的话,那么第二个参数就必须自己取得,可以使用
NTSTATUS
IoGetDeviceObjectPointer(
    IN PUNICODE_STRING  ObjectName,
    IN ACCESS_MASK  DesiredAccess,
    OUT PFILE_OBJECT  *FileObject,
    OUT PDEVICE_OBJECT  *DeviceObject
    );
这个函数
其中第一个参数就是你要钩挂的设备对象的名称
zljabc
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2002-05-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-01-15 10:06
谢谢guardee,送你十分,但我惭愧找不到给分按扭。
可我还想知道
它是堆栈最底层的真实物理设备对象吗?
大虾能讲讲总线设备对象,物理设备对象的关系吗?
游客

返回顶部