ys0032
驱动牛犊
驱动牛犊
  • 注册日期2008-04-01
  • 最后登录2013-05-03
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望130点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1449回复:1

IoCallDriver的返回值不为STATUS_PENDING,这是为什么啊?????

楼主#
更多 发布于:2008-04-09 22:11
源代码如下:
KeInitializeEvent(&waitEvent,NotificationEvent,FALSE);

        IoCopyCurrentIrpStackLocationToNext(Irp);
        IoSetCompletionRoutine( Irp,
            SfFsControlCompletion,
            &waitEvent,
            TRUE,
            TRUE,
            TRUE);

        status = IoCallDriver(devExt->NLExtHeader.AttachedToDeviceObject,Irp);
        if(STATUS_PENDING == status)
        {
            KdPrint(("SFilter!SfFsControlMountVolume:STATUS_PENDING == status.\n"));
            status = KeWaitForSingleObject(&waitEvent,
                Executive,
                KernelMode,
                FALSE,
                NULL);
            ASSERT(STATUS_SUCCESS == status);
        }
        status = SfFsControlMountVolumeComplete(DeviceObject,Irp,newDeviceObject);

如果返回值不为STATUS_PENDING,造成我的卷绑定不成功。
ys0032
驱动牛犊
驱动牛犊
  • 注册日期2008-04-01
  • 最后登录2013-05-03
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望130点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-04-09 22:13
希望哪位好心的大哥能帮我解决一下,这问题已经困绕我好几天了!

谢谢了啊!!!!!!!!!!!!!!!!!!!
游客

返回顶部