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

指出符號連結是絕對或相對的。 如果 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 定義數據。

備註

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

這個結構只能用於 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 (包括 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