sdyxz123 2023-07-31 19:32 采纳率: 39%
浏览 11
已结题

WDM 设备栈疑问不明白

我同一个驱动中创建了两个设备对象,都使用了同一个派遣函数 ,形成了一个设备堆栈 A和B,B在最上层是栈顶, 当IRP 传来的时候 ,IRP最先到设备堆栈的栈顶B,
我有个疑问 当应用程序如果是访问A设备,那么IRP 最先到达的是B 设备,那么此时派遣函数 DispatchRoutine 的 PDEVICE_OBJECT DeviceObject 是 目标设备A 的设备对象,还是 栈顶B的设备对象呢,我的目标设备是A,IRP 访问时候中有记录目标设备的(应用程序需要访问的) 数据结构吗

NTSTATUS DispatchRoutine(PDEVICE_OBJECT DeviceObject, PIRP Irp) {

}

  • 写回答

8条回答 默认 最新

  • 2301_76247172 2023-07-31 22:29
    关注

    在a层device_object就是a的device_object,
    在b层device_object就是b的device_object,
    当你创建b时使用IoAttachDeviceToDeviceStack将b添加到a时,返回值就是a,a的device_object你要自己保存起来,
    当b向下传递irp你要把先前保存的a取出来在使用IoCallDriver向下传递

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(7条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月1日
  • 已采纳回答 8月1日
  • 修改了问题 7月31日
  • 修改了问题 7月31日
  • 展开全部

悬赏问题

  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥15 帮我写一个c++工程