FlushFileBuffers 関数 (fileapi.h)
指定したファイルのバッファーをフラッシュし、バッファー内のすべてのデータをファイルに書き込みます。
構文
BOOL FlushFileBuffers(
[in] HANDLE hFile
);
パラメーター
[in] hFile
開いているファイルへのハンドル。
ファイル ハンドルには、GENERIC_WRITE アクセス権が必要です。 詳細については、「ファイルのセキュリティとアクセス権の」を参照してください。
hFile が通信デバイスへのハンドルである場合、関数は送信バッファーのみをフラッシュします。
hFile
戻り値
関数が成功した場合、戻り値は 0 以外です。
関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
hFile
備考
通常、WriteFile 関数と WriteFileEx 関数は、オペレーティング システムがディスクまたは通信パイプに定期的に書き込む内部バッファーにデータを書き込みます。 FlushFileBuffers 関数は、指定したファイルのすべてのバッファー情報をデバイスまたはパイプに書き込みます。
システム内でのディスク キャッシュ操作により、多数の書き込みが個別に実行されている場合、ディスク ドライブ デバイスへの書き込みのたびに使用される場合、FlushFileBuffers 関数は非効率的になる可能性があります。 アプリケーションがディスクへの複数の書き込みを実行していて、重要なデータが永続的なメディアに書き込まれるようにする必要がある場合、アプリケーションでは、FlushFileBuffersを頻繁に呼び出す代わりに、バッファーなしの I/O
ボリューム上のすべての開いているファイルをフラッシュするには、ボリュームへのハンドル FlushFileBuffers を呼び出します。 呼び出し元には管理者特権が必要です。 詳細については、「特別な特権を使用した実行 」を参照してください。
CreateFile
Windows 8 および Windows Server 2012 では、この関数は次のテクノロジでサポートされています。
テクノロジー | サポート |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | はい |
SMB 3.0 透過的フェールオーバー (TFO) | はい |
SMB 3.0 とスケールアウト ファイル共有 (SO) | はい |
クラスター共有ボリューム ファイル システム (CsvFS) | はい |
回復性のあるファイル システム (ReFS) | はい |
例
例については、「マルチスレッド パイプ サーバー
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | fileapi.h (Windows.h を含む) |
ライブラリ | Kernel32.lib |
DLL | Kernel32.dll |
関連項目
CreateFile の
WriteFile の
WriteFileEx の