Hi,
we are facing problems with using FltCreateFile();
Our current implementation goes as this:
status = FltCreateFile( Filter, /* filter */
FltObjects->FilterInstance, /*instance*/ //
&fileHandle, // fileHandle
GENERIC_READ|GENERIC_WRITE|DELETE, // desired access
&objectAttributes, // object attributes
&ioStatusBlock, // iostatusblock
NULL, // allocation size
FILE_ATTRIBUTE_NORMAL, // file attributes
0, //share access
FILE_OPEN,
FILE_NON_DIRECTORY_FILE ,
NULL, 0, IO_IGNORE_SHARE_ACCESS_CHECK
);
We are passing FilterInstace of our MiniFilter to this function, but we are still getting back create requests on callback routine for our mini filter.
We were in the impression that passing FilterInstance will generate and forward the IRP, only to filter instances that are below us.
We are using FLtObjects->FilterInstance, received in call back routine for IRP_MJ_SET_INFORMATION;
we also tried using FilterInstance put in InstanceContext (using FltSetInstanceContext in instancesetup call back routine), but the result was same.
Has any body faced similar problem, or is there any thing wrong in our approach:
basically What we want to achieve is when we call FltCreateFile() from our FIlter the IRP generated should not come back to our filter but should be directed towards filters attached at lower levels in the stack, then our filter.
sorry for my bad english any help suggestion would be greatly appreciated.