waff1301
驱动牛犊
驱动牛犊
  • 注册日期2007-11-22
  • 最后登录2009-09-25
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1322回复:0

(第一次发帖) 异步完成IRP求救 大侠帮忙

楼主#
更多 发布于:2008-02-21 20:01
目的是这样的,有两个文件,testa.txt和testb.txt,要求,首先双击testa.txt,再双击testb.txt,但是testa.txt必须在testb.txt打开之后再打开.
我在MJ_CREATE的拦截函数里,写的类似这样的代码,
IrpCreate(...,PIRP Irp)
{
......
 if(filename=="testa.txt)
{
  aIrp=Irp;//将打开testa.txt的Irp指针保存起来
 IoMarkPending(aIrp);//
   return STATUS_PENDING//延时完成
}
if(filename=="testb.txt)
{
  completeIrp(Irp);//完成打开testb的Irp
  return complete(aIrp);//完成打开testa的Irp
}
.....
}
如果没有最后一行代码时,执行结果是双击testa.txt时,notepad一直在等待打开,双击testb.txt时能打开,但是加上最后一行时,双击testa.txt时notepad等待打开,但是双击testb.txt时就蓝屏了.
我刚学驱动开发,哪位大侠能指导一下?谢谢!!!!
游客

返回顶部