Freigeben über


REPARSE_DATA_BUFFER-Struktur (ntifs.h)

Die REPARSE_DATA_BUFFER-Struktur enthält Analysepunktdaten für einen Microsoft-Analysepunkt. Sie können stattdessen REPARSE_DATA_BUFFER_EX verwenden. (Besitzer von Analysepunkten von Drittanbietern müssen stattdessen die REPARSE_GUID_DATA_BUFFER-Struktur verwenden.)

Syntax

typedef struct _REPARSE_DATA_BUFFER {
  ULONG  ReparseTag;
  USHORT ReparseDataLength;
  USHORT Reserved;
  union {
    struct {
      USHORT SubstituteNameOffset;
      USHORT SubstituteNameLength;
      USHORT PrintNameOffset;
      USHORT PrintNameLength;
      ULONG  Flags;
      WCHAR  PathBuffer[1];
    } SymbolicLinkReparseBuffer;
    struct {
      USHORT SubstituteNameOffset;
      USHORT SubstituteNameLength;
      USHORT PrintNameOffset;
      USHORT PrintNameLength;
      WCHAR  PathBuffer[1];
    } MountPointReparseBuffer;
    struct {
      UCHAR DataBuffer[1];
    } GenericReparseBuffer;
  } DUMMYUNIONNAME;
} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;

Member

ReparseTag

Analysepunkttag. Muss ein Microsoft-Analysepunkttag sein. (Weitere Informationen finden Sie im folgenden Abschnitt mit den Anmerkungen .)

ReparseDataLength

Größe der Analysedaten im Puffer, auf den DataBuffer verweist, in Byte.

Reserved

Länge des nicht analysierten Teils des Dateinamens, auf den der FileName-Member des zugeordneten Dateiobjekts verweist, in Byte. Weitere Informationen zum FileName-Element finden Sie unter FILE_OBJECT<. Dieser Member ist nur für Erstellungsvorgänge gültig, wenn die E/A mit STATUS_REPARSE fehlschlägt. Für alle anderen Zwecke, z. B. das Festlegen oder Abfragen eines Analysepunkts für die Analysedaten, wird dieser Member als reserviert behandelt.

DUMMYUNIONNAME

DUMMYUNIONNAME.SymbolicLinkReparseBuffer

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset

Offset in Bytes der Ersatznamenzeichenfolge im PathBuffer-Array . Beachten Sie, dass dieser Offset durch sizeof(WCHAR) geteilt werden muss, um den Arrayindex abzurufen.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength

Länge der Ersatznamenzeichenfolge in Byte. Wenn diese Zeichenfolge NULL-beendet ist, enthält SubstituteNameLength keinen Leerraum für das UNICODE_NULL-Abschlusszeichen.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset

Offset in Byte der Drucknamenzeichenfolge im PathBuffer-Array . Beachten Sie, dass dieser Offset durch sizeof(WCHAR) geteilt werden muss, um den Arrayindex abzurufen.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameLength

Länge der Drucknamenzeichenfolge in Byte. Wenn diese Zeichenfolge NULL-beendet ist, enthält PrintNameLength keinen Leerraum für das UNICODE_NULL Abschlusszeichen.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags

Gibt an, ob die symbolische Verknüpfung absolut oder relativ ist. Wenn Flags SYMLINK_FLAG_RELATIVE enthält, wird die symbolische Verknüpfung im PathBuffer-Array (am Offset SubstituteNameOffset) als relative symbolische Verknüpfung verarbeitet. andernfalls wird sie als absolute symbolische Verbindung verarbeitet.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]

Erstes Zeichen der Pfadzeichenfolge. Auf dieses Zeichen folgt im Arbeitsspeicher der rest der Zeichenfolge. Die Pfadzeichenfolge enthält die Ersatznamenzeichenfolge und die Drucknamenzeichenfolge. Die Ersatznamen- und Drucknamenzeichenfolgen können in beliebiger Reihenfolge im PathBuffer angezeigt werden. Um die Ersatznamen- und Drucknamenzeichenfolgen im PathBuffer zu suchen, verwenden Sie die Member SubstituteNameOffset, SubstituteNameLength, PrintNameOffset und PrintNameLength .

DUMMYUNIONNAME.MountPointReparseBuffer

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset

Offset in Bytes der Ersatznamenzeichenfolge im PathBuffer-Array . Beachten Sie, dass dieser Offset durch sizeof(WCHAR) geteilt werden muss, um den Arrayindex abzurufen.

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength

Länge der Ersatznamenzeichenfolge in Byte. Wenn diese Zeichenfolge NULL-beendet ist, enthält SubstituteNameLength keinen Leerraum für das UNICODE_NULL-Abschlusszeichen.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset

Offset in Byte der Drucknamenzeichenfolge im PathBuffer-Array . Beachten Sie, dass dieser Offset durch sizeof(WCHAR) geteilt werden muss, um den Arrayindex abzurufen.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameLength

Länge der Drucknamenzeichenfolge in Byte. Wenn diese Zeichenfolge NULL-beendet ist, enthält PrintNameLength keinen Leerraum für das UNICODE_NULL Abschlusszeichen.

DUMMYUNIONNAME.MountPointReparseBuffer.PathBuffer[1]

Erstes Zeichen der Pfadzeichenfolge. Auf dieses Zeichen folgt im Arbeitsspeicher der rest der Zeichenfolge. Die Pfadzeichenfolge enthält die Ersatznamenzeichenfolge und die Drucknamenzeichenfolge. Die Ersatznamen- und Drucknamenzeichenfolgen können in beliebiger Reihenfolge im PathBuffer angezeigt werden. Um die Ersatznamen- und Drucknamenzeichenfolgen im PathBuffer zu suchen, verwenden Sie die Member SubstituteNameOffset, SubstituteNameLength, PrintNameOffset und PrintNameLength .

DUMMYUNIONNAME.GenericReparseBuffer

DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]

Zeiger auf einen Puffer, der von Microsoft definierte Daten für den Analysepunkt enthält.

Hinweise

Die REPARSE_DATA_BUFFER-Struktur wird von Microsoft-Dateisystemen, Filtern und Minifiltertreibern sowie dem E/A-Manager zum Speichern von Daten für einen Analysepunkt verwendet.

Diese Struktur kann nur für Analysepunkte von Microsoft verwendet werden. Drittanbieter-Analysepunktbesitzer müssen stattdessen die REPARSE_GUID_DATA_BUFFER-Struktur verwenden.

Microsoft-Analysepunkte können die REPARSE_DATA_BUFFER-Struktur oder die REPARSE_GUID_DATA_BUFFER-Struktur verwenden.

In der Union können Sie die GenericReparseBuffer-Struktur verwenden, um die Nutzlast für ein beliebiges IO_REPARSE_TAG_XXX-Tag zu interpretieren, oder optional eine der anderen Strukturen innerhalb der Union wie folgt verwenden:

  • Verwenden Sie die SymbolicLinkReparseBuffer-Struktur, wenn FileTag IO_REPARSE_TAG_SYMLINK ist.

  • Verwenden Sie die MountPointReparseBuffer-Struktur, wenn FileTag IO_REPARSE_TAG_MOUNT_POINT ist.

Weitere Informationen zu Analysepunkttags finden Sie in der Dokumentation zu Microsoft Windows SDK.

Anforderungen

Anforderung Wert
Header ntifs.h (include Ntifs.h, Fltkernel.h)

Weitere Informationen

FILE_OBJECT

FILE_REPARSE_POINT_INFORMATION

FLT_PARAMETERS für 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_EX

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile