Does windows supports mount points on REFS ?

Hello Everyone,

I need to get the list of all mount points on REFS but I could not get it as FindFirstVolumeMountPoint() is not supported for REFS but I can create mount point on REFS volume using mountvol command.

I also read on this link https://msdn.microsoft.com/en-us/library/windows/desktop/aa364994(v=vs.85).aspx that “Mount points aren’t supported by ReFS volumes.”

So if they are not supporting mount points on REFS then why I am able to create mount point using mountvol on REFS? And If I am able to create mount point then is there any api which can list mount points?

Which version of Windows are you using?

Windows 8/2012 shipped with ReFS that included reparse points, but not a
reparse index. This meant mount points could be created but not
enumerated (FindFirstVolumeMountPoint etc), which broke many management
tools so the documentation just said no support was present. This also
coincided with most of the ReFS documentation being written.

Windows 8.1/2012R2 shipped with a reparse index, but did not include any
upgrade support that would generate reparse index entries for existing
volumes. This meant that newly formatted volumes should support reparse
indexes, but existing volumes would not. Additionally, taking an 8.1
volume back to 8.0 would function but would silently destroy the reparse
index. I’d expect FindFirstVolumeMountPoint to work there, so long as
the volume never saw 8.0. This seemed to hard to express to customers
and most documentation wasn’t really updated.

Windows 2016 ships with a much updated ReFS that barely resembles the
8.1 version. A newly formatted volume should use that version, which
cannot be mounted on 8.1 and should have a reparse index for life.
Again, existing volumes are mounted with a totally different driver that
makes no attempt to upgrade and preserves the 8.1 behavior.

  • M


http://www.malsmith.net

I am using Windows server 2012 R2 Standard.

I tried Using FindFirstVolumeMountPoint() on newly formatted REFS volume but these enumeration functions fails.

But I can create mount point on this volume using mountvol command.

This is really difficult to understand why they are allowing to create mount point but does not allow to enumerate?

On 03/23/2017 04:30 AM, xxxxx@gmail.com wrote:

I am using Windows server 2012 R2 Standard.

I tried Using FindFirstVolumeMountPoint() on newly formatted REFS volume but these enumeration functions fails.

I spent some time researching this, and my earlier post was inaccurate
and incorrect. I apologize for giving out bad information.

2012 R2 did not have any support for the reparse index. We were working
on it in that time, but it wasn’t enabled until 2016.

But I can create mount point on this volume using mountvol command.

This is really difficult to understand why they are allowing to create mount point but does not allow to enumerate?

In the file system, there are two structures implementing mount points:
reparse points and the reparse index. Reparse points are metadata
attached to directories which indicate that attempts to navigate into
the directory should be redirected to another volume. The reparse index
is the structure that allows these points to be enumerated - which is
what FindFirstVolumeMountPoint is doing.

Because the reparse index wasn’t present in ReFS, it was documented as
not supporting mount points. Reparse points were present, and were
needed to support other things such as symbolic links. This means that
ReFS allows reparse points to be created, but can’t enumerate them later.

This should be fully functional, with FindFirstVolumeMountPoint, in 2016.

  • M


http://www.malsmith.net