阅读:1114回复:1
如何在filemon中打开文件,创建线程?
在filemon,打开一个文件,是用Zw函数打开好,还是自己生成一个IRP包,直接发给低层的文件系统驱动好?请哪位大侠给段源码,演示一下如何打开文件,建立线程.不胜感激
|
|
沙发#
发布于: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); |
|