Hello,
I’ve developed a legacy file system filter driver for my diploma thesis.
My fsfd looks for FastIoQueryOpen-Requests made by a predetermined process.
If FastIoQueryOpen returns TRUE and
status = Irp->IoStatus.Status is STATUS_OBJECT_NAME_NOT_FOUND
the fsfd trys to connect to a user mode application and tell them the file
name. The user mode application checks out this file from database on to the
disk. Than I’m calling FastIoQueryOpen of the underlying driver object
another time and if the file was successfully checked out it will be opened
by the process.
This solution works well but I’m not sure: is it right to call
FastIoQueryOpen another time? Or is there some more elegant way to solve
this problem?
The other problem is how I can make the same in the Create-function
(IRP_MJ_CREATE) of my fsfd. When I’m calling IoCallDriver another time it
crashes. How can I determine if the file is on the disk?
Thanks
Alex
P.S.: Sorry for my bad english.