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.
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.
ZwFsControlFile returns STATUS_SUCCESS or an appropriate NTSTATUS value such as one of the following:
|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.|
|Header||Ntifs.h (include Ntifs.h or Fltkernel.h)|
FLT_PARAMETERS for IRP_MJ_FILE_SYSTEM_CONTROL
Submit and view feedback for