次の方法で共有


ZwFlushBuffersFile 関数 (ntifs.h)

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

構文

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

パラメーター

[in] FileHandle

バッファー フラッシュされるファイルの ZwOpenFile または 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*** バージョン間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンの使用](/windows-hardware/drivers/kernel/using-nt-and-zw-versions-of-the-native-system-services-routines)を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista
ターゲット プラットフォーム の 万国
ヘッダー ntifs.h (Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (「解説」セクションを参照)
DDI コンプライアンス規則 を する HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

関連項目

FltFlushBuffers を する

IRP_MJ_FLUSH_BUFFERS

ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンを使用した

ZwCreateFile

ZwOpenFile