// ntifs.h
// CTL_CODE(0x0009, 0x103, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_REPARSE_POINT_EX 0x0009040C
View the official Windows hardware development documentationNo description available.
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:
| 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. |
| Requirement type | Requirement |
|---|---|
| Header | Ntifs.h (include Ntifs.h or Fltkernel.h) |
FLT_PARAMETERS for IRP_MJ_FILE_SYSTEM_CONTROL