filter manager resets Iopb for rename operations before post-callback

Hello !
I am filtering rename operations. In pre-callback I clear ReplaceIfExists in both FLT_PARAMETERS for IRP_MJ_SET_INFORMATION and FILE_RENAME_INFORMATION. Call FltSetCallbackDataDirty.
Before my callback called filter manager sets Iopb in FLT_CALLBACK_DATA to new value.
In post-callback I have ReplaceIfExists in FLT_PARAMETERS for IRP_MJ_SET_INFORMATION set(by fltmgr) to TRUE(should be FALSE). ReplaceIfExists in FILE_RENAME_INFORMATION still set to FALSE(as expected).
Nothing changes if I don’t call FltSetCallbackDataDirty.

Is that expected behaviour ? What should I do if I want to get correct modified value in post-callback ?

You don’t. This is expected behavior - you get the original data in
the Iopb in your Post Operation callback. You need to save it

… And it could be argued that is is beholden on you to put the FILE_RENAME_INFORMATION back the way you found it.