REPARSE_GUID_DATA_BUFFER structure (ntifs.h)

The REPARSE_GUID_DATA_BUFFER structure contains reparse point data for a reparse point.

Syntax

typedef struct _REPARSE_GUID_DATA_BUFFER {
  ULONG  ReparseTag;
  USHORT ReparseDataLength;
  USHORT Reserved;
  GUID   ReparseGuid;
  struct {
    UCHAR DataBuffer[1];
  } GenericReparseBuffer;
} REPARSE_GUID_DATA_BUFFER, *PREPARSE_GUID_DATA_BUFFER;

Members

ReparseTag

Reparse point tag that uniquely identifies the owner of the reparse point. (See the following Remarks section.)

ReparseDataLength

Size, in bytes, of the reparse data in the DataBuffer member.

Reserved

Reserved; do not use.

ReparseGuid

GUID that uniquely identifies the owner of the reparse point. (See the following Remarks section.)

GenericReparseBuffer

GenericReparseBuffer.DataBuffer[1]

User-defined data for the reparse point. The format of this data is defined by the owner of the reparse point.

Remarks

The REPARSE_GUID_DATA_BUFFER structure is used by all third-party file systems, filters, and minifilters, as well as some Microsoft file systems, filters, and minifilters to store data for a reparse point. Each reparse point contains one REPARSE_GUID_DATA_BUFFER structure.

Microsoft reparse points can use the REPARSE_DATA_BUFFER structure instead of the REPARSE_GUID_DATA_BUFFER structure. However, third-party reparse points are required to use the REPARSE_GUID_DATA_BUFFER structure.

Reparse point tags are assigned to third parties by Microsoft. You may request more than one reparse point for use with a file system, file system filter driver, or minifilter driver.

Reparse point GUIDs are not assigned by Microsoft. However, you must choose one GUID to use with your assigned reparse point tag, and you must always use this GUID with the tag. To generate a GUID, you can use GUIDGen (Guidgen.exe), a tool that is included in the Microsoft Windows SDK.

Minifilters can set or delete a reparse point by calling FltTagFile or FltUntagFile. Minifilters can retrieve a reparse point by using the FSCTL_GET_REPARSE_POINT control code. This code can be sent to the file system by calling FltFsControlFile.

File systems and filter drivers can retrieve, set, or delete a reparse point by using the FSCTL_GET_REPARSE_POINT, FSCTL_SET_REPARSE_POINT, and FSCTL_DELETE_REPARSE_POINT control codes. These codes can be sent to the file system by calling ZwFsControlFile.

For more information about reparse points and reparse point tags, see the Windows SDK documentation.

Requirements

Requirement Value
Header ntifs.h (include Ntifs.h, Fltkernel.h)

See also

FILE_REPARSE_POINT_INFORMATION

FLT_PARAMETERS for IRP_MJ_FILE_SYSTEM_CONTROL

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltTagFile

FltTagFileEx

FltUntagFile

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_DATA_BUFFER_EX

ZwFsControlFile