ZwFlushBuffersFileEx 関数 (ntifs.h)

ZwFlushBuffersFileEx ルーチンは、ファイル システム フィルター ドライバーによって呼び出され、特定のファイルのフラッシュ要求をファイル システムに送信します。 オプションのフラッシュ操作フラグを設定して、ファイル データをストレージに書き込む方法を制御できます。

構文

NTSYSAPI NTSTATUS ZwFlushBuffersFileEx(
  [in]  HANDLE           FileHandle,
        ULONG            FLags,
        PVOID            Parameters,
        ULONG            ParametersSize,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

パラメーター

[in] FileHandle

バッファーがフラッシュされるファイルの ZwCreateFile または ZwOpenFile によって返されるハンドル。 このパラメーターは必須であり、 NULL にすることはできません。

FLags

フラッシュ操作フラグ。 フラグ には、0 または次のいずれかの値を指定できます。

意味
FLUSH_FLAGS_FILE_DATA_ONLY

ファイルが NTFS ファイル システム上にある場合は、ファイル キャッシュ内のファイル データが書き込まれます。 メタデータは書き込まれず、基になるストレージはキャッシュをフラッシュするために同期されません。 このフラグは、ボリューム ハンドルでは無効です。

FLUSH_FLAGS_NO_SYNC

ファイルが NTFS ファイル システム上にある場合は、ファイル キャッシュ内のファイル データとメタデータが書き込まれます。 基になるストレージは、キャッシュをフラッシュするために同期されません。 このフラグは、ボリューム ハンドルでは無効です。

 

Parameters

呼び出し元の I/O 状態ブロックのアドレス。 このパラメーターは必須であり、 NULL にすることはできません。

ParametersSize

パラメーター ブロックのサイズ (バイト単位)。

[out] IoStatusBlock

呼び出し元の I/O 状態ブロックのアドレス。 このパラメーターは必須であり、 NULL にすることはできません。

戻り値

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

リターン コード 説明
STATUS_MEDIA_WRITE_PROTECTED
ファイルは書き込み保護ボリュームに存在します。これはエラー コードです。
STATUS_VOLUME_DISMOUNTED
ファイルは、現在マウントされていないボリュームに存在します。これはエラー コードです。
STATUS_ACCESS_DENIED
ファイルには書き込みアクセス権も追加アクセス権もありません。

注釈

ファイル システム フィルター ドライバーは 、ZwFlushBuffersFileEx を呼び出して、特定のファイルの IRP_MJ_FLUSH_BUFFERS 要求をファイル システムに発行できます。 フラッシュ操作は同期です。

ミニフィルター ドライバーでは、 ZwFlushBuffersFileEx を呼び出す代わりに FltFlushBuffers を呼び出す必要があります。

ZwFlushBuffersFileEx の呼び出し元は、IRQL = PASSIVE_LEVELで実行され、特殊なカーネル API が有効になっている必要があります。

メモZwFlushBuffersFileEx 関数の呼び出しがユーザー モードで行われる場合は、"ZwFlushBuffersFileEx" ではなく "NtFlushBuffersFileEx" という名前を使用する必要があります。
 
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの **Nt*Xxx*** と **Zw*Xxx*** バージョンは、入力パラメーターを処理および解釈する方法で動作が異なります。 ルーチンの **Nt*Xxx*** バージョンと **Zw*Xxx*** バージョン間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用](/windows-hardware/drivers/kernel/using-nt-and-zw-versions-of-the-native-system-services-routines)」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 8
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL (「解説」セクションを参照)。

こちらもご覧ください

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

Nt および Zw バージョンのネイティブ システム サービス ルーチンの使用

ZwCreateFile

ZwOpenFile