阅读:1080回复:2
关于截取文件关闭时的irp,和之后的操作!
一个文件被一个应用程序打开,关闭时最后一个irp是什么?
是不是vdtask的irp_mj_close? 我截取到这个irp,然后,IoSetCompletionRoutine(),在completionroutine里面通知应用程序,由应用程序将另外一个文件删除(remove(file)),驱动里面没有问题,但是运行到应用程序里面的remove(file)时,应用程序就停在那里不动了,死了? 这是为什么?应该怎么解决阿? ps: vdtask是什么东东?能不能解释一下? 驱动里面有没有什么函数可以直接删除文件的? 万分感谢! |
|
最新喜欢:![]()
|
沙发#
发布于:2003-01-09 12:39
最后一个IRP是IRP_MJ_CLOSE. 但是IRP_MJ_CLOSE不是应用程序一关HANDLE就发出的. CACHE MANAGER会等一段时间才发出该CALL.
每个CLOSEHANDLE对应1个IRM_MJ_CLEANUP. |
|
|
板凳#
发布于:2003-01-09 14:05
vdtask是不是就是CACHE MANAGER,因为我截取到的最后一个IRP是由
VDTASK发出的 IRP_MJ_CLOSE. 然后,我是不是要等到VDTASK完成了IRP_MJ_CLOSE之后才可以进行应用程序的工作?例如remove()等! |
|
|