FSCTL_GET_REPARSE_POINT control code

The FSCTL_GET_REPARSE_POINT control code retrieves the reparse point data associated with the specified file or directory.

To perform this operation, call FltFsControlFile or ZwFsControlFile with the following parameters.

For more information about reparse points and the FSCTL_GET_REPARSE_POINT control code, see the Microsoft Windows SDK documentation.

Parameters

  • FileObject [in]: FltFsControlFile only. File object pointer for the file or directory from which to retrieve the reparse point data. This parameter is required and cannot be NULL.

  • FileHandle [in]: ZwFsControlFile only. File handle for the file or directory from which to retrieve the reparse point data. This parameter is required and cannot be NULL.

  • FsControlCode [in]: A control code for the operation. Use FSCTL_GET_REPARSE_POINT for this operation.

  • InputBuffer [in]: Not used with this operation; set to NULL.

  • InputBufferLength [in]: Not used with this operation; set to zero.

  • OutputBuffer [out]: Pointer to a caller-allocated REPARSE_GUID_DATA_BUFFER or REPARSE_DATA_BUFFER structure that receives the reparse point data.

  • OutputBufferLength [out]: Size, in bytes, of the buffer pointed to by the OutputBuffer parameter. The number of bytes is calculated as follows:

    Structure OutputBufferLength
    REPARSE_GUID_DATA_BUFFER Must be at least REPARSE_GUID_DATA_BUFFER_HEADER_SIZE plus the size of the expected user-defined data; and must be less than or equal to MAXIMUM_REPARSE_DATA_BUFFER_SIZE.
    REPARSE_DATA_BUFFER Must be at least REPARSE_DATA_BUFFER_HEADER_SIZE plus the size of the expected user-defined data; and must be less than or equal to MAXIMUM_REPARSE_DATA_BUFFER_SIZE.

Status block

FltFsControlFile or ZwFsControlFile returns STATUS_SUCCESS or an appropriate NTSTATUS value such as one of the following:

Code Meaning
STATUS_BUFFER_OVERFLOW The buffer that the OutputBuffer parameter points to is large enough to hold the fixed portion of the REPARSE_GUID_DATA_BUFFER or REPARSE_DATA_BUFFER structure but not the user-defined data. In this case, only OutputBufferLength bytes are returned in the OutputBuffer buffer. The LengthReturned parameter to FltFsControlFile receives the actual length, in bytes, of data returned. This is a warning code.
STATUS_BUFFER_TOO_SMALL The buffer that OutputBuffer points to is less than sizeof(REPARSE_GUID_DATA_BUFFER) and is not large enough to hold the reparse point data. The LengthReturned parameter to FltFsControlFile (or the Information member of the IoStatus parameter to ZwFsControlFile) receives the required buffer size. In this case, no reparse point data is returned. This is an error code.
STATUS_IO_REPARSE_DATA_INVALID One of the specified parameter values was invalid. This is an error code.
STATUS_NOT_A_REPARSE_POINT The file or directory is not a reparse point. This is an error code.

Requirements

Requirement type Requirement
Header Ntifs.h (include Ntifs.h or Fltkernel.h)

See also

FLT_CALLBACK_DATA

FLT_PARAMETERS for IRP_MJ_FILE_SYSTEM_CONTROL

FLT_TAG_DATA_BUFFER

FltFsControlFile

FltTagFile

FltUntagFile

FSCTL_DELETE_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile