FSCTL_SET_REPARSE_POINT - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// winioctl.h

// CTL_CODE(0x0009, 0x029, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_REPARSE_POINT 0x000900A4
View the official Win32 API reference
// ntifs.h

// CTL_CODE(0x0009, 0x029, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_SET_REPARSE_POINT 0x000900A4
View the official Windows hardware development documentation

NtDoc

No description available.

Win32 API reference (ni-winioctl-fsctl_set_reparse_point)

FSCTL_SET_REPARSE_POINT IOCTL

Description

Sets a reparse point on a file or directory.

To perform this operation, call the DeviceIoControl function with the following parameters.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to file or directory
  FSCTL_SET_REPARSE_POINT,          // dwIoControlCode
  (LPVOID) lpInBuffer,              // input buffer
  (DWORD) nInBufferSize,            // size of input buffer
  NULL,                             // lpOutBuffer
  0,                                // nOutBufferSize
  NULL,                             // lpBytesReturned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

Parameters

Input buffer

Input buffer length

Output buffer

Output buffer length

Input/output buffer

Input/output buffer length

Status block

Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful.

Otherwise, Status to the appropriate error condition as a NTSTATUS code.

For more information, see NTSTATUS Values.

Remarks

For the implications of overlapped I/O on this operation, see the Remarks section of DeviceIoControl.

Note that the time stamps may not be updated correctly for a remote file. To ensure consistent results, use unbuffered I/O.

The calling process must have the SE_CREATE_SYMBOLIC_LINK_NAME privilege. For more information, see Running with Special Privileges.

In Windows 8 and Windows Server 2012, this code is supported by the following technologies.

Technology Supported
Server Message Block (SMB) 3.0 protocol Yes
SMB 3.0 Transparent Failover (TFO) Yes
SMB 3.0 with Scale-out File Shares (SO) Yes
Cluster Shared Volume File System (CsvFS) No
Resilient File System (ReFS) Yes

CsvFs does not support reparse points.

See also


Windows hardware development documentation (fsctl-set-reparse-point)

FSCTL_SET_REPARSE_POINT control code

The FSCTL_SET_REPARSE_POINT 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 to set a reparse point.

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

Parameters

Status block

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

Code Meaning
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)

See also

FLT_PARAMETERS for IRP_MJ_FILE_SYSTEM_CONTROL

FltTagFile

FltUntagFile

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile