FSCTL_SET_REPARSE_POINT IOCTL (winioctl.h)

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
);

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.

Requirements

Requirement Value
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