Filter manager + oplocks


ifstest-av revealed a problem in one of oplock tests, instead of calling IoCreateFileSpecifyDeviceObjectHint with FILE_COMPLETE_IF_OPLOCKED flag FilterManager supports FltCurrentBatchOplock function.

I have to do something bad, because this code (in PostCreate callback) fails in FltUninitializeOplock.
f5b22704 804e3515 ae31ffd0 ae31fff4 82440900 nt!ExAcquireFastMutexUnsafe (FPO: [0,0,0])
f5b22764 baec2a43 f5b227c4 f5b227e0 f5a8a8fd nt!FsRtlUninitializeOplock+0x27 (FPO: [Non-Fpo])
WARNING: Stack unwind information not available. Following frames may be wrong.
f5b22770 f5a8a8fd f5b227c4 ae31ffd0 ae31fff4 fltMgr!FltUninitializeOplock+0x13

Access violation - code c0000005 (!!! second chance !!!)
8052cebc ff09 dec dword ptr [ecx]

and code is:

OPLOCK oplock;

FltInitializeOplock( &oplock );
bRet = FltCurrentBatchOplock( &oplock );
FltUninitializeOplock( &oplock );

Is this a standard checking procedure ?

Petr Kurtin