FSCTL_SET_REPARSE_POINT_EX control code
The FSCTL_SET_REPARSE_POINT_EX control code sets a reparse point on a file or directory.
To perform this operation, call ZwFsControlFile with the following parameters.
Minifilters should use FltTagFile instead of FSCTL_SET_REPARSE_POINT_EX to set a reparse point.
For more information about reparse points and the FSCTL_SET_REPARSE_POINT_EX control code, see the Microsoft Windows SDK documentation.
Parameters
FileHandle: File handle for the file or directory on which to set a reparse point. This parameter is required and cannot be NULL.
FsControlCode: Control code for the operation. Use FSCTL_SET_REPARSE_POINT_EX for this operation.
InputBuffer: Pointer to a caller-allocated REPARSE_GUID_DATA_BUFFER or REPARSE_DATA_BUFFER_EX structure that contains the reparse point data.
InputBufferLength: Size, in bytes, of the buffer pointed to by the InputBuffer parameter. For a REPARSE_GUID_DATA_BUFFER structure, this value must be at least REPARSE_GUID_DATA_BUFFER_HEADER_SIZE, plus the size of the user-defined data, and it must be less than or equal to MAXIMUM_REPARSE_DATA_BUFFER_SIZE. For a REPARSE_DATA_BUFFER_EX structure, this value must be at least REPARSE_DATA_BUFFER_HEADER_SIZE, plus the size of the user-defined data, and it must be less than or equal to MAXIMUM_REPARSE_DATA_BUFFER_SIZE.
OutputBuffer: Not used with this operation; set to NULL.
OutputBufferLength: Not used with this operation; set to zero.
Status block
ZwFsControlFile returns STATUS_SUCCESS or an appropriate NTSTATUS value such as one of the following:
Value | Description |
---|---|
STATUS_DIRECTORY_NOT_EMPTY | A reparse point cannot be set on a nonempty directory. This is an error code. |
STATUS_EAS_NOT_SUPPORTED | A reparse point cannot be set on a file if this request is in a transaction. This is an error code. |
STATUS_IO_REPARSE_DATA_INVALID | One of the specified parameter values was invalid. This is an error code. |
STATUS_IO_REPARSE_TAG_MISMATCH | The reparse tag specified by the caller did not match the tag of the reparse point to be modified. This is an error code. |
STATUS_NOT_A_REPARSE_POINT | The file or directory is not a reparse point. This is an error code. |
STATUS_REPARSE_ATTRIBUTE_CONFLICT | The reparse point is a third-party reparse point, and the reparse GUID specified by the caller did not match the GUID of the reparse point to be modified. This is an error code. |
Requirements
Requirement type | Requirement |
---|---|
Header | Ntifs.h (include Ntifs.h or Fltkernel.h) |