REPARSE_DATA_BUFFER_EX - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#ifndef _NTIOAPI_H

// Reparse structure for FSCTL_SET_REPARSE_POINT_EX

typedef struct _REPARSE_DATA_BUFFER_EX
{
    ULONG Flags;

    //
    //  This is the existing reparse tag on the file if any,  if the
    //  caller wants to replace the reparse tag too.
    //
    //    - To set the reparse data  along with the reparse tag that
    //      could be different,  pass the current reparse tag of the
    //      file.
    //
    //    - To update the reparse data while having the same reparse
    //      tag,  the caller should give the existing reparse tag in
    //      this ExistingReparseTag field.
    //
    //    - To set the reparse tag along with reparse data on a file
    //      that doesn't have a reparse tag yet, set this to zero.
    //
    //  If the ExistingReparseTag  does not match the reparse tag on
    //  the file,  the FSCTL_SET_REPARSE_POINT_EX  would  fail  with
    //  STATUS_IO_REPARSE_TAG_MISMATCH. NOTE: If a file doesn't have
    //  a reparse tag, ExistingReparseTag should be 0.
    //

    ULONG ExistingReparseTag;

    //  For non-Microsoft reparse tags, this is the existing reparse
    //  guid on the file if any,  if the caller wants to replace the
    //  reparse tag and / or guid along with the data.
    //
    //  If ExistingReparseTag is 0, the file is not expected to have
    //  any reparse tags, so ExistingReparseGuid is ignored. And for
    //  non-Microsoft tags ExistingReparseGuid should match the guid
    //  in the file if ExistingReparseTag is non zero.

    GUID ExistingReparseGuid;

    //
    //  Reserved
    //
    ULONGLONG Reserved;

    //
    //  Reparse data to set
    //
    union
    {
        REPARSE_DATA_BUFFER ReparseDataBuffer;
        REPARSE_GUID_DATA_BUFFER ReparseGuidDataBuffer;
    };
} REPARSE_DATA_BUFFER_EX, *PREPARSE_DATA_BUFFER_EX;

#endif

View code on GitHub
// ntifs.h

typedef struct _REPARSE_DATA_BUFFER_EX {
  ULONG     Flags;
  ULONG     ExistingReparseTag;
  GUID      ExistingReparseGuid;
  ULONGLONG Reserved;
  union {
    REPARSE_DATA_BUFFER      ReparseDataBuffer;
    REPARSE_GUID_DATA_BUFFER ReparseGuidDataBuffer;
  } DUMMYUNIONNAME;
} REPARSE_DATA_BUFFER_EX, *PREPARSE_DATA_BUFFER_EX;

View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-ntifs-_reparse_data_buffer_ex)

_REPARSE_DATA_BUFFER_EX structure

Description

The REPARSE_DATA_BUFFER_EX structure contains data for a reparse point.

Members

Flags

Can be the following value:

Flag Value Meaning
REPARSE_DATA_EX_FLAG_GIVEN_TAG_OR_NONE Forces FSCTL_SET_REPARSE_POINT_EX to set the reparse tag if the file has no tag, or if the tag on the file is same as the one in ExistingReparseTag. NOTE: If ExistingReparseTag is not a Microsoft tag, then ExistingReparseGuid should match if the file already has the ExistingReparseTag.

ExistingReparseTag

Reparse point tag on the file, if any, if the caller wants to also replace the reparse tag.

ExistingReparseGuid

For non-Microsoft reparse tags, this is the existing reparse GUID on the file, if any, when the caller wants to replace the reparse tag and/or GUID along with the data. If ExistingReparseTag is zero, the file is not expected to have any reparse tags, so ExistingReparseGuid is ignored. For non-Microsoft tags, ExistingReparseGuid should match the GUID in the file if ExistingReparseTag is non-zero.

Reserved

Reserved. Do not use.

DUMMYUNIONNAME

DUMMYUNIONNAME.ReparseDataBuffer

A REPARSE_DATA_BUFFER structure that contains data for a Microsoft-defined reparse point.

DUMMYUNIONNAME.ReparseGuidDataBuffer

A REPARSE_GUID_DATA_BUFFER structure that contains data for a reparse point. Third party reparse points must use this structure.

Remarks

The REPARSE_DATA_BUFFER_EX structure is used to store data for a reparse point. Use REPARSE_DATA_BUFFER_EX when setting a reparse point on a file or directory through the FSCTL_SET_REPARSE_POINT_EX IOCTL.

See also

FSCTL_SET_REPARSE_POINT_EX

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER