2.1.2.5 Mount Point Reparse Data Buffer

The Mount Point Reparse Data Buffer data element is a subtype of REPARSE_DATA_BUFFER, which contains information about mount point reparse points. This reparse data buffer MUST be used only with reparse tag values whose high bit is set to 1.

A mount point has a substitute name and a print name associated with it. The substitute name is a pathname (section 2.1.5) identifying the target of the mount point. The print name SHOULD be an informative pathname, suitable for display to a user, that also identifies the target of the mount point. Neither of these pathnames can contain dot directory names.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

ReparseTag

ReparseDataLength

Reserved

SubstituteNameOffset

SubstituteNameLength

PrintNameOffset

PrintNameLength

PathBuffer (variable)

...

ReparseTag (4 bytes): A 32-bit unsigned integer value containing the reparse point tag that uniquely identifies the owner (that is, the implementer of the filter driver associated with this ReparseTag) of the reparse point. This value MUST be 0xA0000003.

ReparseDataLength (2 bytes): A 16-bit unsigned integer value containing the size, in bytes, of the reparse data that follows the common portion of the REPARSE_DATA_BUFFER element. This value is the length of the data starting at the SubstituteNameOffset field (or the size of the PathBuffer field, in bytes, plus 8).

Reserved (2 bytes): A 16-bit field. This field is not used. It SHOULD be set to 0 and MUST be ignored.

SubstituteNameOffset (2 bytes): A 16-bit unsigned integer that contains the offset, in bytes, of the substitute name string in the PathBuffer array, computed as an offset from byte 0 of PathBuffer. Note that this offset is divided by 2 to get the array index.

SubstituteNameLength (2 bytes):  A 16-bit unsigned integer that contains the length, in bytes, of the substitute name string. If this string is null-terminated, SubstituteNameLength does not include the Unicode null character.

PrintNameOffset (2 bytes): A 16-bit unsigned integer that contains the offset, in bytes, of the print name string in the PathBuffer array, computed as an offset from byte 0 of PathBuffer. Note that this offset is divided by 2 to get the array index.

PrintNameLength (2 bytes): A 16-bit unsigned integer that contains the length, in bytes, of the print name string. If this string is null-terminated, PrintNameLength does not include the Unicode null character.

PathBuffer (variable): Unicode character array that contains the substitute name string and print name string. The substitute name and print name strings can appear in any order in PathBuffer. To locate the substitute name and print name strings in the PathBuffer field, use the SubstituteNameOffset, SubstituteNameLength, PrintNameOffset, and PrintNameLength members.