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 で代替名と印刷名の文字列を見つけるには、SubstituteNameOffsetSubstituteNameLengthPrintNameOffset、および 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 で代替名と印刷名の文字列を見つけるには、SubstituteNameOffsetSubstituteNameLengthPrintNameOffset、および 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ドキュメントを参照してください。

要件

要件
Header ntifs.h (Ntifs.h、Fltkernel.h を含む)

こちらもご覧ください

FILE_OBJECT

FILE_REPARSE_POINT_INFORMATION

FLT_PARAMETERS (IRP_MJ_FILE_SYSTEM_CONTROL 用)

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