FltTagFile 関数 (fltkernel.h)

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

構文

NTSTATUS FLTAPI FltTagFile(
  [in]           PFLT_INSTANCE InitiatingInstance,
  [in]           PFILE_OBJECT  FileObject,
  [in]           ULONG         FileTag,
  [in, optional] GUID          *Guid,
  [in]           PVOID         DataBuffer,
  [in]           USHORT        DataBufferLength
);

パラメーター

[in] InitiatingInstance

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

[in] FileObject

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

[in] FileTag

ポイント タグを再解析します。 既存の再解析タグが変更されている場合、このパラメーターで指定されたタグは、変更する再解析ポイントのタグと一致している必要があります。

[in, optional] Guid

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

[in] DataBuffer

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

[in] DataBufferLength

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

戻り値

FltTagFile は 、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_INSUFFICIENT_RESOURCES
FltTagFileEx で プール割り当てエラーが発生しました。 これはエラー コードです。
STATUS_INVALID_DEVICE_REQUEST
ファイル システムでは、再解析ポイントはサポートされていません。 これはエラー コードです。
STATUS_INVALID_PARAMETER
FileTag は Microsoft タグではなく、GuidNULL が指定されました。 これはエラー コードです。
STATUS_IO_REPARSE_TAG_MISMATCH
呼び出し元によって指定された再解析タグが、変更する再解析ポイントのタグと一致しませんでした。 これはエラー コードです。
STATUS_REPARSE_ATTRIBUTE_CONFLICT
呼び出し元によって指定された再解析 GUID が、変更する再解析ポイントの GUID と一致しませんでした。 これはエラー コードです。

注釈

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

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

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

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

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
[DLL] Fltmgr.sys
IRQL PASSIVE_LEVEL

こちらもご覧ください

FILE_FS_ATTRIBUTE_INFORMATION

FLT_TAG_DATA_BUFFER

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltQueryVolumeInformation

FltTagFileEx

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER