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中找到替代名稱和列印名稱字串,請使用 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定義的數據。
言論
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_REPARSE_POINT_INFORMATION
IRP_MJ_FILE_SYSTEM_CONTROL的