needhelp
驱动牛犊
驱动牛犊
  • 注册日期2004-11-08
  • 最后登录2006-01-12
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1114回复:1

如何在filemon中打开文件,创建线程?

楼主#
更多 发布于:2005-03-09 16:54
在filemon,打开一个文件,是用Zw函数打开好,还是自己生成一个IRP包,直接发给低层的文件系统驱动好?请哪位大侠给段源码,演示一下如何打开文件,建立线程.不胜感激
gongbin_net
驱动牛犊
驱动牛犊
  • 注册日期2003-06-18
  • 最后登录2005-06-07
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-09 21:25
使用zw函数,必须得到这个函数的文件句柄,像filedisk那样。自己发送一个包比较好,
   Irp = IoAllocateIrp(DeviceObject->StackSize, TRUE);
   if (Irp==NULL)
     {
return(NULL);
     }
  
   Irp->UserIosb = IoStatusBlock;
   DPRINT(\"Irp->UserIosb %x\\n\", Irp->UserIosb);
   Irp->UserEvent = UserEvent;
   Irp->Tail.Overlay.Thread = PsGetCurrentThread();
  
   StackPtr = IoGetNextIrpStackLocation(Irp);
   StackPtr->MajorFunction = IRP_MJ_FILE_SYSTEM_CONTROL;
   StackPtr->MinorFunction = MinorFunction;
   StackPtr->Flags = 0;
   StackPtr->Control = 0;
   StackPtr->DeviceObject = DeviceObject;
   StackPtr->FileObject = NULL;
   StackPtr->CompletionRoutine = NULL;
  
      return(Irp);
游客

返回顶部