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<を参照してください。 このメンバーは、STATUS_REPARSEで I/O が失敗した場合にのみ、作成操作に対して有効です。 再解析データの再解析ポイントの設定やクエリなど、他のすべての目的で、このメンバーは予約済みとして扱われます。
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の任意の順序で表示できます。
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の任意の順序で表示できます。
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 (Ntifs.h、Fltkernel.h を含む) |
関連項目
FILE_REPARSE_POINT_INFORMATION
IRP_MJ_FILE_SYSTEM_CONTROLの
FltFsControlFile の
FltTagFile を
FltTagFileEx の
FltUntagFile を
IsReparseTagMicrosoft の
IsReparseTagNameSurrogate の