Incorrect properties for directory after using mount manager IOCTLs to send notification and create

Hi all,

I have posted this message to ntfsd, but it seems ntdev should be the
proper place.

I have searched the ntfsd list and ntdev list and could not find the answer
for my problem. The problem is as following:

I have an FSD running on Windows Server 2003 x86. Within the driver a fake
disk is also created for a volume.

In the FSD, IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION and
IOCTL_MOUNTMGR_CREATE_POINT are used to send volume arrival notification
and create the mount point(A drive letter). But the properties of every
directory in the volume are not displayed correctly in the Explorer. Right
click a directory, select “property”, in the regular tab, the type is
“MountedVolume” while it is supposed to be “Folder”. I think the
“MountedVolume” type should be for reparse point only, but my FSD does not
support reparse point at all. I can make sure that the property for the
directory returned from the FSD is “directory”, not “reparse point”. I
don’t know how and where the Explorer gets the ?MountedVolume" information.
Except for the directory property problem, everything else(create file,
folder, read/write file, remove …) works fine.

If I do not use IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION and
IOCTL_MOUNTMGR_CREATE_POINT, but use IoCreateSymbolicLink instead to create
the mount point, the properties of directory in the volume are displayed
correctly, that is to say, the type is “Folder”. By not
using IOCTL_MOUNTMGR_VOLUME_ARRIVAL_NOTIFICATION and
IOCTL_MOUNTMGR_CREATE_POINT, I have other problems, to say, some
application can not use my volume.

What is the possible cause for the problem? Do I miss some interactions
with the Mount Manager?

Sean