jame.z
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2004-05-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1088回复:3

关于完成例程的问题

楼主#
更多 发布于:2002-04-26 11:20
我正在写一个捕捉下层驱动的读写操作的过滤驱动:
1)我已在建立该过滤驱动设备时,设置好了:
FDO->StackSize = LDO->StackSize+1;
FDO->Flags |= LDO->Flags;
FDO->Flags &= ~(DO_DEVICE_INITIALING);
2)过滤驱动设备接收到读IRP时:
IoCopyCurrentIrpStackLocationToNext(Irp);
IoSetCompletionRoutine(....);
retunr IoCallDriver(...);
3)问题就在调用读IRP完成例程时,改读IRP返回的长度不对,而且我在这个例程中,什么也没做,上层系统应用工作失败。
我读的信息是:
Irp->IoStatus.Information 和 Irp->AssociatedIrp.SystemBuffer
内容对,长度不对。
-----------------------------------------------------------
请问各位大侠,为什么造成这种现象?
matt
驱动中牛
驱动中牛
  • 注册日期2001-07-24
  • 最后登录2016-02-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-04-26 13:27
我正在写一个捕捉下层驱动的读写操作的过滤驱动:
1)我已在建立该过滤驱动设备时,设置好了:
FDO->StackSize = LDO->StackSize+1;
FDO->Flags |= LDO->Flags;
FDO->Flags &= ~(DO_DEVICE_INITIALING);
2)过滤驱动设备接收到读IRP时:
IoCopyCurrentIrpStackLocationToNext(Irp);
IoSetCompletionRoutine(....);
retunr IoCallDriver(...);
3)问题就在调用读IRP完成例程时,改读IRP返回的长度不对,而且我在这个例程中,什么也没做,上层系统应用工作失败。
我读的信息是:
Irp->IoStatus.Information 和 Irp->AssociatedIrp.SystemBuffer
内容对,长度不对。
-----------------------------------------------------------
请问各位大侠,为什么造成这种现象?


先看看OSR上的一篇文章吧,然后再分析你的问题:

www.osr.com ntinsider \"How NT Handles I/O Completion\"



System Internals http://sys.xiloo.com
matt
驱动中牛
驱动中牛
  • 注册日期2001-07-24
  • 最后登录2016-02-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-04-26 13:28
我正在写一个捕捉下层驱动的读写操作的过滤驱动:
1)我已在建立该过滤驱动设备时,设置好了:
FDO->StackSize = LDO->StackSize+1;
FDO->Flags |= LDO->Flags;
FDO->Flags &= ~(DO_DEVICE_INITIALING);
2)过滤驱动设备接收到读IRP时:
IoCopyCurrentIrpStackLocationToNext(Irp);
IoSetCompletionRoutine(....);
retunr IoCallDriver(...);
3)问题就在调用读IRP完成例程时,改读IRP返回的长度不对,而且我在这个例程中,什么也没做,上层系统应用工作失败。
我读的信息是:
Irp->IoStatus.Information 和 Irp->AssociatedIrp.SystemBuffer
内容对,长度不对。
-----------------------------------------------------------
请问各位大侠,为什么造成这种现象?


先看看OSR上的一篇文章吧,然后再分析你的问题:

www.osr.com ntinsider \"How NT Handles I/O Completion\"
及\"Rolling Your Own\"!





System Internals http://sys.xiloo.com
jame.z
驱动牛犊
驱动牛犊
  • 注册日期2001-08-07
  • 最后登录2004-05-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-26 16:24
那个网站我打不开,不过我以前能打开,今天那个网站什么回事?
游客

返回顶部