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 |