liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:972回复:2

请教tooflat老大的结构,这样在过滤驱动中取下层设备的可以吗?!

楼主#
更多 发布于:2007-01-15 16:53
第一种方法:
在IRP_MJ_CREATE的派遣例程中我这样子调用
     IoCallDriver(DeviceObject->NextDevice ,Irp);

    NextDevice 是不是代表着下层设备呢?这样发到下层对吗?

第二个:

   PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
// 调用过滤驱动的下一层驱动

PDEVICE_EXTENSION BuddyPdx = (PDEVICE_EXTENSION) pdx->BuddyDeviceObject->DeviceExtension;
IoSkipCurrentIrpStatkLocation(Irp);
return IoCallDriver(BuddyPdx->AttachToDeviceObject, Irp);


这段代码是从这个坛子里找到的.但是我找不到PDEVICE_EXTENSION这个结构或者找到的不符合.

我主要不明白BuddyDeviceObject是代表什么和AttachToDeviceObject代表什么希望高手解释下

如果都不对,请哪位能不能告诉我如何在本层得到下层驱动设备对象呢?
waterice_2005
驱动牛犊
驱动牛犊
  • 注册日期2006-02-15
  • 最后登录2007-02-05
  • 粉丝0
  • 关注0
  • 积分250分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-01-15 17:02
BuddyDeviceObject是用户根据自己需要命名定义的,不一定非要和系统完全一样,包括扩展设备对象等,哈哈!
冰水混合物
liio
驱动小牛
驱动小牛
  • 注册日期2005-12-24
  • 最后登录2022-06-16
  • 粉丝4
  • 关注1
  • 积分24分
  • 威望343点
  • 贡献值0点
  • 好评度171点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-01-15 17:38
对.我看出是用户自己定义的,

我主要是想取系统的下层设备,请问我该如何定义呢?
游客

返回顶部