FltCancelFileOpen() does not release file when return STATUS_REPARSE

Hi all

Using IFS WindowsXP to filter the Rdr redirector

In a PostCreate routine, i am trying to cancel the opened remote file, and redirect
using STATUS_REPARSE to a different local path.

This works, except the remote files remains locked (i.e. opened) even though
i call FltCancelFileOpen().

If instead of returning STATUS_REPARSE i return ACCESS_DENIED,
then the FltCancelFileOpen() seems to correctly cancel the open and the
remote file is deletable.

… in the post create callback …

FltCancelFileOpen( FltObjects->Instance, FltObjects->FileObject);


Data->IoStatus.Status = STATUS_REPARSE;
Data->IoStatus.Information = IO_REPARSE;


the above code works great except that the original remote file remains locked…

Any hint?
How about setting FO_FILE_OPEN_CANCELLED and simply closing
the file object my self ?!