Opening a file with a reparse point

Hello!

I am writing a minifilter that will perform hierarchical storage management.
All files under its control should have reparse points set.

When an userspace application tries to open a file (with a reparse point)
the ntfs does not allow to open it and it returns STATUS_REPARSE. It is an
expected behavior.
I am detecting my reparse tag open in post-create callback routine. I would
like to handle this situation in a way to allow such file to be opened.
So I set the FILE_OPEN_REPARSE_POINT flag in my post-create callback
routine:
data->Iopb->Parameters.Create.Options |= FILE_OPEN_REPARSE_POINT;

Then I call FltSetCallbackDataDirty() according to the IFS toolkit help.

Then I change return status to:
data->IoStatus.Status = STATUS_REPARSE;
data->IoStatus.Information = IO_REPARSE;

and return from post-create callback.

What I see next is that IO manager opened the file again but the flag
FILE_OPEN_REPARSE_POINT that I set in post-create routine is not set
(cleared) in the new open.

This leads to recursive file opening loop with my minifilter.

What is wrong in my approach?

Regards,
Urban