Henry
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录2011-06-20
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1591回复:7

请问IoCompletionRoutine应该返回什么值?

楼主#
更多 发布于:2002-07-18 09:58
请问IoCompletionRoutine应该返回什么值?
我不是自己的创建的IRP.
应该返回STATUS_SUCCESS还是Irp->IoStatus.Status?

最新喜欢:

ameiamei
驱动人生。
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-07-18 10:22
用户被禁言,该主题自动屏蔽!
chrys
驱动小牛
驱动小牛
  • 注册日期2002-05-30
  • 最后登录2008-07-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-18 10:29
IoCallDriver( dx->NextStackDevice, Irp);调用地层驱动或者直接返回处理后的status
天才来自勤奋 知识要靠学习 [url= http://ndxz.126.com]――欢迎来我家做客――[/url]
Henry
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录2011-06-20
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-18 14:18
大家可能都误解了我的意思。
我的问题如下:

//IRP_MJ_READ
NTSTATUS
Read()
{
   IoCopyCurrentIrpStackLocationToNext(Irp),
   IoSetCompletionRoutine(CompletionRoutine, Event...);
   Status = IoCallDriver(fdo, Irp);
   if (Status == STATUS_PENDING){
      KeWaitForSingleObject(Event, ...);
   }
}

NTSTATUS
CompletionRoutine(fdo, irp,Event)
{
   KeSetEvent(Event,...);
   return ????  ---(1)
}

其中(1)处的返回值应该为什么?对Irp的处理有什么影响?

驱动人生。
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-18 15:50
完成例程一般返回STATUS_MORE_PROCESSING_REQUIRED
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
Henry
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录2011-06-20
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-19 09:05
我的理解是:应该是自己建立的Irp才需要在完成例程中返回STATUS_MORE_PROCESSING_REQUIRED,用来阻止Io管理器释放Irp的内存。
其它的情况下返回什么值?
驱动人生。
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-07-19 09:49
其他情况:
STATUS_SUCCESS
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
Henry
驱动牛犊
驱动牛犊
  • 注册日期2001-04-27
  • 最后登录2011-06-20
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望27点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-22 10:14
可以截贴啦。
驱动人生。
游客

返回顶部