void (TimeStampRoutine*)(struct _ETW_KERNEL_TRACE_TIMESTAMP*, unsigned long);
void (FailureNotifyRoutine*)(void*, unsigned long, unsigned long, unsigned short);
void (InitiationNotifyRoutine*)(void*, unsigned long, unsigned long, unsigned short);
void (CompletionNotifyRoutine*)(void*, unsigned long, unsigned long, unsigned short, struct _ETW_KERNEL_TRACE_TIMESTAMP*);
void (FastCompletionNotifyRoutine*)(void*, unsigned long, unsigned long, unsigned short, struct _ETW_KERNEL_TRACE_TIMESTAMP*);
in windows 10 new entry was added:
void (IoRedirectionNotifyRoutine*)(struct _IRP*, struct _FILE_OBJECT*);
This structure initialized in DriverEntry - PerfTraceRoutines assigned address of GLOBALS.DummyPerfTraceRoutines and then called function WmiQueryTraceInformation with class FltIoNotifyRoutinesClass (where this structure filled with content of EtwpFltIoNotifyRoutines)
So patching this functions pointers you can have real-time info about operations in file filters (or perhaps disable Etw logging for them)
On freshly installed system only two pfns are initialized: