共用方式為


REPARSE_DATA_BUFFER結構 (ntifs.h)

REPARSE_DATA_BUFFER 結構包含Microsoft重新分析點的重新分析點數據。 您可以改用 REPARSE_DATA_BUFFER_EX。 (第三方重新分析點擁有者必須使用 REPARSE_GUID_DATA_BUFFER 結構。

語法

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;

成員

ReparseTag

重新剖析點標記。 必須是重新剖析點標籤Microsoft。 (請參閱下列 一節。)

ReparseDataLength

DataBuffer 指向之緩衝區中重新剖析數據的大小,以位元組為單位。

Reserved

檔名之未剖析部分的長度,以位元組為單位,由相關聯檔案物件的 FileName 成員所指向。 如需 FileName 成員的詳細資訊,請參閱 FILE_OBJECT<。 當 I/O 失敗且STATUS_REPARSE時,此成員才適用於建立作業。 針對所有其他用途,例如設定或查詢重新分析數據重新分析點,此成員會被視為保留。

DUMMYUNIONNAME

DUMMYUNIONNAME.SymbolicLinkReparseBuffer

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset

位移,以位元組為單位,位移 PathBuffer 陣列中的替代名稱字串。 請注意,此位移必須除以 sizeof(WCHAR) 以取得陣列索引。

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength

替代名稱字串的長度,以位元組為單位。 如果此字串為 NULL 終止,SubstituteNameLength 不包含UNICODE_NULL終止符的空間。

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset

PathBuffer 陣列印名稱字串的位移,以位元組為單位。 請注意,此位移必須除以 sizeof(WCHAR) 以取得陣列索引。

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameLength

列印名稱字串的長度,以位元組為單位。 如果此字串為 NULL 終止,PrintNameLength 不包含UNICODE_NULL終止符的空間。

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags

指出符號連結是絕對連結還是相對連結。 如果 旗標 包含SYMLINK_FLAG_RELATIVE,PathBuffer 陣列中包含的符號連結(位移 SubstituteNameOffset)會以相對符號連結的形式處理:否則,它會處理為絕對符號連結。

DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]

路徑字串的第一個字元。 此字元會在記憶體中後面接著字串的其餘部分。 路徑字串包含替代名稱字串和列印名稱字串。 替代名稱和列印名稱字串可以依 PathBuffer的順序顯示。 若要在 PathBuffer中找到替代名稱和列印名稱字串,請使用 SubstituteNameOffsetSubstituteNameLengthPrintNameOffsetPrintNameLength 成員。

DUMMYUNIONNAME.MountPointReparseBuffer

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset

位移,以位元組為單位,位移 PathBuffer 陣列中的替代名稱字串。 請注意,此位移必須除以 sizeof(WCHAR) 以取得陣列索引。

DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength

替代名稱字串的長度,以位元組為單位。 如果此字串為 NULL 終止,SubstituteNameLength 不包含UNICODE_NULL終止符的空間。

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset

PathBuffer 陣列印名稱字串的位移,以位元組為單位。 請注意,此位移必須除以 sizeof(WCHAR) 以取得陣列索引。

DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameLength

列印名稱字串的長度,以位元組為單位。 如果此字串為 NULL 終止,PrintNameLength 不包含UNICODE_NULL終止符的空間。

DUMMYUNIONNAME.MountPointReparseBuffer.PathBuffer[1]

路徑字串的第一個字元。 此字元會在記憶體中後面接著字串的其餘部分。 路徑字串包含替代名稱字串和列印名稱字串。 替代名稱和列印名稱字串可以依 PathBuffer的順序顯示。 若要在 PathBuffer中找到替代名稱和列印名稱字串,請使用 SubstituteNameOffsetSubstituteNameLengthPrintNameOffsetPrintNameLength 成員。

DUMMYUNIONNAME.GenericReparseBuffer

DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]

緩衝區的指標,其中包含重新分析點Microsoft定義的數據。

言論

REPARSE_DATA_BUFFER 結構是由Microsoft文件系統、篩選和迷你篩選驅動程式以及 I/O 管理員使用,來儲存重新分析點的數據。

此結構只能用於Microsoft重新分析點。 第三方重新分析點擁有者必須使用 REPARSE_GUID_DATA_BUFFER 結構。

Microsoft重新分析點可以使用REPARSE_DATA_BUFFER結構或REPARSE_GUID_DATA_BUFFER結構。

從等位中,您可以使用 GenericReparseBuffer 結構來解譯任何IO_REPARSE_TAG_XXX標記的承載,或選擇性地使用聯集內的其他其中一個結構,如下所示:

  • 當 FileTag 為IO_REPARSE_TAG_SYMLINK時,請使用 SymbolicLinkReparseBuffer 結構。

  • 當 FileTag IO_REPARSE_TAG_MOUNT_POINT時,請使用 MountPointReparseBuffer 結構。

如需重新剖析點標籤的詳細資訊,請參閱 Microsoft Windows SDK 檔。

要求

要求 價值
標頭 ntifs.h (include Ntifs.h, Fltkernel.h)

另請參閱

FILE_OBJECT

FILE_REPARSE_POINT_INFORMATION

IRP_MJ_FILE_SYSTEM_CONTROL的 FLT_PARAMETERS

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