in a IRP_MJ_CREATE's Pre operation callback, I call the FltCreateFile to
open a file in another volume.
To avoid a loop,
I have to get the Instance of my filter for that volume and so I call
the FltGetVolumeFromName to obtain the pVolume pointer and then call the
FltenumerateInstance. But when I call the FltGetVolumeFromName the
system go on BSOD.
I've the same result even with a code like this
IN OUT PFLT_CALLBACK_DATA Data,
IN PCFLT_RELATED_OBJECTS FltObjects,
OUT PVOID *CompletionContext
PFLT_VOLUME Volume = NULL;
status = FltGetFileNameInformation( Data,FLT_FILE_NAME_OPENED |
The Filter pointer and the Volume's name are correct.
The FltCreateFile exit with error STATUS_INVALID_DEVICE_OBJECT_PARAMETER
((NTSTATUS)0xC0000369L) if I give an instance of a another volume from
which the file that I want to open belong.