FltTagFileEx 関数 (fltkernel.h)

FltTagFileEx は、ファイルまたはディレクトリに再解析ポイントを設定します。

構文

NTSTATUS FLTAPI FltTagFileEx(
  PFLT_INSTANCE InitiatingInstance,
  PFILE_OBJECT  FileObject,
  ULONG         FileTag,
  GUID          *Guid,
  PVOID         DataBuffer,
  USHORT        DataBufferLength,
  ULONG         ExistingFileTag,
  GUID          *ExistingGuid,
  ULONG         Flags
);

パラメーター

InitiatingInstance

この I/O 要求を開始したミニフィルター ドライバー インスタンスへの不透明なポインター。 このパラメーターは必須であり、 NULL にすることはできません。

FileObject

再解析ポイントを設定するファイルまたはディレクトリのファイル オブジェクトへのポインター。 FILE_WRITE_DATAアクセスするには、ファイル オブジェクトを開く必要があります。 このパラメーターは必須であり、 NULL にすることはできません。

FileTag

ポイント タグを再解析します。 ntifs.h で定義されているIO_REPARSE_TAG_XXX 値のいずれかを指定できます。

Guid

再解析ポイントを一意に識別する GUID。 FileTag が Microsoft 以外のタグの場合、このパラメーターは必須であり、NULL にすることはできません。 既存の再解析タグが変更されている場合、このパラメーターで指定された GUID は、変更する再解析ポイントの GUID と一致する必要があります。

DataBuffer

再解析ポイントのユーザー定義データを含むバッファーへのポインター。

DataBufferLength

DataBuffer が指すバッファーのサイズ (バイト単位)。

ExistingFileTag

タグを置き換える必要がある場合は、ファイルの既存のタグ。 このパラメーターは、まだ設定されていないファイルに再解析タグを設定するには、0 に設定する必要があります。

ExistingGuid

既存の再解析ポイントを一意に識別する GUID。 ExistingFileTag が Microsoft 以外のタグで、0 以外の場合、このパラメーターを NULL にすることはできません。

Flags

ntifs.h で定義されているREPARSE_DATA_BUFFER_EX_XXX フラグを指定します。

戻り値

この関数は、次のようなSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_IO_REPARSE_TAG_MISMATCH ExistingFileTag で指定されたタグ値が、既存のタグ値と一致しません。
STATUS_REPARSE_ATTRIBUTE_CONFLICT Microsoft 以外のタグを持つ既存の再解析ポイントの場合、 ExistingFileTag は既存のタグ値と一致しますが、 Guid は既存の Guid と一致しません。

注釈

ミニフィルター ドライバーでは、再解析ポイントを設定するために、FSCTL_SET_REPARSE_POINT_EXの代わりに FltTagFileEx を使用する必要があります。

すべてのファイル システムで再解析ポイントがサポートされているわけではありません。たとえば、NTFS ファイル システムと ReFS ファイル システムではサポートされていますが、FAT ファイル システムではサポートされていません。 ミニフィルター ドライバーは、 FltQueryVolumeInformation を呼び出し、 FsInformation パラメーターに FileFsAttributeInformation を指定し、返された FILE_FS_ATTRIBUTE_INFORMATION 構造体でFILE_SUPPORTS_REPARSE_POINTSビット フラグを調べることで、ファイル システムが再解析ポイントをサポートしているかどうかを判断できます。

既存の再解析ポイントを削除するには、 FltUntagFile を呼び出します。

再解析ポイントの詳細については、Microsoft Windows SDKドキュメントを参照してください。

要件

要件
Header fltkernel.h

こちらもご覧ください

FILE_FS_ATTRIBUTE_INFORMATION

FLT_TAG_DATA_BUFFER

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltQueryVolumeInformation

FltTagFile

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER