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 中找到替代名稱和列印名稱字串,請使用 SubstituteNameOffset、 SubstituteNameLength、 PrintNameOffset 和 PrintNameLength 成員。
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 中找到替代名稱和列印名稱字串,請使用 SubstituteNameOffset、 SubstituteNameLength、 PrintNameOffset 和 PrintNameLength 成員。
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_REPARSE_POINT_INFORMATION