2.3.28 FSCTL_GET_REPARSE_POINT Reply

This message returns the results of the FSCTL_GET_REPARSE_POINT request. The message contains a REPARSE_GUID_DATA_BUFFER (including subtypes) or a REPARSE_DATA_BUFFER data element.

Both the REPARSE_GUID_DATA_BUFFER and the REPARSE_DATA_BUFFER structures begin with a ReparseTag field. The ReparseTag value uniquely identifies the filter driver that creates/uses the reparse point, and the application's filter driver processes the reparse point data as either a REPARSE_GUID_DATA_BUFFER or a REPARSE_DATA_BUFFER, depending on the structure implemented by the filter driver for that type of reparse point. A particular filter driver is implemented with specific support for the type of reparse point data structure it accepts.

If the file system of the volume containing the specified file or directory does not support the use of reparse points, the request will not succeed. The error code returned in this situation MAY vary, depending on the file system.<29>

This message also returns a status code as specified in section 2.2. Upon success, the status code returned by the function that processes this FSCTL is STATUS_SUCCESS. The most common error codes are listed in the following table.

 Error code

 Meaning

STATUS_BUFFER_TOO_SMALL

0xC0000023

The output buffer is too small to contain a REPARSE_GUID_DATA_BUFFER.

STATUS_INVALID_PARAMETER

0xC000000D

The handle is not to a file or directory.

STATUS_BUFFER_OVERFLOW

0x80000005

The output buffer filled before all the reparse point data was returned.

STATUS_NOT_A_REPARSE_POINT

0xC0000275

The file or directory is not a reparse point.

STATUS_INVALID_DEVICE_REQUEST

0xC0000010

The file system does not support the use of reparse points.