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 値を返します。
リターン コード | 説明 |
---|---|
|
FltTagFileEx で プール割り当てエラーが発生しました。 これはエラー コードです。 |
|
ファイル システムでは、再解析ポイントはサポートされていません。 これはエラー コードです。 |
|
FileTag は Microsoft タグではなく、Guid に NULL が指定されました。 これはエラー コードです。 |
|
呼び出し元によって指定された再解析タグが、変更する再解析ポイントのタグと一致しませんでした。 これはエラー コードです。 |
|
呼び出し元によって指定された再解析 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 |