FSCTL_SET_REPARSE_POINT IOCTL

Sets a reparse point on a file or directory.

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

C++
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,                          // lpOutBuffer0,                             // nOutBufferSizeNULL,                          // lpBytesReturned(LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure

Major Code

IRP_MJ_DEVICE_CONTROL

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.

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.

Requirements

   
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Header winioctl.h (include Windows.h)

See Also

DeviceIoControl

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER

Reparse Points