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

Angehörige

ReparseTag

Analysepunkttag. Muss ein Microsoft-Analysepunkttag sein. (Siehe den folgenden Abschnitt "Anmerkungen".)

ReparseDataLength

Größe der Analysedaten in Bytes im Puffer, auf die DataBuffer verweist.

Reserved

Länge des nicht analysierten Teils des Dateinamens, auf den durch den FileName Member des zugeordneten Dateiobjekts verwiesen wird. Weitere Informationen zum mitglied FileName finden Sie unter FILE_OBJECT<. Dieses Element 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 dieses Element als reserviert behandelt.

DUMMYUNIONNAME

DUMMYUNIONNAME.SymbolicLinkReparseBuffer

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset

Offset in Byte der Ersatznamenzeichenfolge im PathBuffer Array. Beachten Sie, dass dieser Offset durch Größe von(WCHAR) dividiert 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 den UNICODE_NULL Terminator.

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset

Offset in Byte der Drucknamenzeichenfolge im PathBuffer Array. Beachten Sie, dass dieser Offset durch Größe von(WCHAR) dividiert 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 den UNICODE_NULL Terminator.

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 (bei 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. Verwenden Sie zum Suchen der Ersatznamen- und Drucknamenzeichenfolgen in der PathBuffer-die SubstituteNameOffset, SubstituteNameLength, PrintNameOffsetund PrintNameLength Member.

DUMMYUNIONNAME.MountPointReparseBuffer

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset

Offset in Byte der Ersatznamenzeichenfolge im PathBuffer Array. Beachten Sie, dass dieser Offset durch Größe von(WCHAR) dividiert 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 den UNICODE_NULL Terminator.

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset

Offset in Byte der Drucknamenzeichenfolge im PathBuffer Array. Beachten Sie, dass dieser Offset durch Größe von(WCHAR) dividiert 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 den UNICODE_NULL Terminator.

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. Verwenden Sie zum Suchen der Ersatznamen- und Drucknamenzeichenfolgen in der PathBuffer-die SubstituteNameOffset, SubstituteNameLength, PrintNameOffsetund PrintNameLength Member.

DUMMYUNIONNAME.GenericReparseBuffer

DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]

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

Bemerkungen

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

Diese Struktur kann nur für Microsoft-Analysepunkte verwendet werden. Besitzer von Drittanbietern 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.

Aus der Union können Sie die GenericReparseBuffer-Struktur verwenden, um die Nutzlast für jedes IO_REPARSE_TAG_XXX-Tag zu interpretieren oder optional eine der anderen Strukturen innerhalb der Union wie folgt zu 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 Microsoft Windows SDK-Dokumentation.

Anforderungen

Anforderung Wert
Header- ntifs.h (einschließlich Ntifs.h, Fltkernel.h)

Siehe auch

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-