We have a legacy file system filter driver for very specific operations which are not possible with minifilters (this is out of topic).
The problem is, when this legacy filter driver is loaded, and hence attached to related file system devices, our IRP_MJ_QUERY_OPEN callback in our minifilter no longer gets called. I tried just passing through any IRP operation in the legacy filter driver, but no luck, so therefore it surely isn’t related to our IRP handling for that legacy filter driver, as even just passing the IRP to the next device for every IRP doesn’t help.
The only other thing I can think of, is this is happening due to the filter driver’s fast io handling, FastIoQueryOpen in particular, but the implementation of fast io handling is the same with any other open source filter driver, which just passes through the fast io if the callback is available, such as the following (although during my testing, FastIoQueryOpen of the next device object always returns 0, is this normal?)
Then I came upon this topic:
And thought maybe setting the SupportedFeatures value in our minifilter’s service key with the value 0x4 (SUPPORTED_FS_FEATURES_QUERY_OPEN) can help, but no luck either, even after rebooting.
Any idea why this is happening?