FltFlushBuffers2 関数 (fltkernel.h)
ミニフィルター ドライバーは FltFlushBuffers2 を呼び出して、特定のファイルのフラッシュ要求をファイル システムに送信します。
構文
NTSTATUS FLTAPI FltFlushBuffers2(
PFLT_INSTANCE Instance,
PFILE_OBJECT FileObject,
ULONG FlushType,
PFLT_CALLBACK_DATA CallbackData
);
パラメーター
Instance
[入力]呼び出し元のミニフィルター ドライバー インスタンスの不透明なインスタンス ポインター。 このパラメーターは必須であり、NULL にすることはできません。
FileObject
[入力]フラッシュするファイルまたはボリュームのファイル オブジェクト ポインター。 このパラメーターは必須であり、NULL にすることはできません。
FlushType
[入力]ファイル システムがファイルに対して実行するフラッシュの種類を指定します。 FlushType には、次のいずれかを指定できます。
FlushType 操作値 | 説明 |
---|---|
0 | FileObject がファイルの場合、ファイル キャッシュ内のファイル データとメタデータの両方が書き込まれ、基になるストレージが同期されてキャッシュがフラッシュされます。 FileObject がボリュームの場合、ファイル システムによって、ボリューム上のすべての変更されたファイルのファイル データとメタデータの両方が書き込まれ、基になるストレージが同期されてキャッシュがフラッシュされます。 この操作は FltFlushBuffers と同じです。 |
FLT_FLUSH_TYPE_FLUSH_AND_PURGE | 0 (FltFlushBuffers) と同じですが、フラッシュの完了後にキャッシュも消去されます。 |
FLT_FLUSH_TYPE_FILE_DATA_ONLY | ファイルが NTFS ファイル システム上にある場合は、ファイル キャッシュ内のファイル データのみが書き込まれます。 メタデータは書き込まれず、基になるストレージはキャッシュをフラッシュするために同期されません。 FileObject がボリュームの場合、このフラグは無効です。 |
FLT_FLUSH_TYPE_NO_SYNC | ファイルが NTFS ファイル システム上にある場合は、ファイル キャッシュ内のファイル データとメタデータが書き込まれます。 基になるストレージは、キャッシュをフラッシュするために同期されません。 FileObject がボリュームの場合、このフラグは無効です。 |
FLT_FLUSH_TYPE_DATA_SYNC_ONLY | ファイルが NTFS ファイル システム上にある場合は、ファイル キャッシュ内のファイル データが書き込まれます。 メタデータは書き込まれない。 基になるストレージは、キャッシュをフラッシュするために同期されます。 FileObject がボリュームまたはディレクトリの場合、このフラグは無効です。 |
CallbackData
[入力/省略可能]呼び出し元の IRP 拡張機能を伝達するために使用される省略可能な FLT_CALLBACK_DATA 構造体へのポインター。 FltPropagateIrpExtension を参照してください。
戻り値
FltFlushBuffers2 は、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
STATUS_MEDIA_WRITE_PROTECTED | ファイルは書き込み保護ボリュームに存在します。 これはエラー コードです。 |
STATUS_VOLUME_DISMOUNTED | ファイルは、現在マウントされていないボリュームに存在します。 これはエラー コードです。 |
注釈
ミニフィルター ドライバーは FltFlushBuffers2 を呼び出して、特定のファイルに対してファイル システムに IRP_MJ_FLUSH_BUFFERS 要求を発行できます。 フラッシュ操作は同期であり、指定されたインスタンスの下のインスタンスに対して発行 されます。
ファイルが NTFS ファイル システム上にある場合、ミニフィルターは FlushType パラメーターを使用してフラッシュの種類を制御できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 バージョン 1903 |
Header | fltkernel.h |