ZwFlushBuffersFile 関数 (ntifs.h)

ZwFlushBuffersFile ルーチンは、ファイル システム フィルター ドライバーによって呼び出され、指定したファイルのフラッシュ要求をファイル システムに送信します。

構文

NTSYSAPI NTSTATUS ZwFlushBuffersFile(
  [in]  HANDLE           FileHandle,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

パラメーター

[in] FileHandle

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

[out] IoStatusBlock

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

戻り値

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

リターン コード 説明
STATUS_MEDIA_WRITE_PROTECTED
ファイルは書き込み保護ボリュームに存在します。これはエラー コードです。
STATUS_VOLUME_DISMOUNTED
ファイルは、現在マウントされていないボリュームに存在します。これはエラー コードです。

注釈

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

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

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

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

要件

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

こちらもご覧ください

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

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

ZwCreateFile

ZwOpenFile