<Return[F]><Top>

FlushViewOfFile

Declare Function Api_FlushViewOfFile& Lib "kernel32" Alias "FlushViewOfFile" (lpBaseAddress As Any, ByVal dwNumberOfBytesToFlush&)

Declare Function FlushViewOfFile Lib "kernel32" Alias "FlushViewOfFile" (lpBaseAddress As Any, ByVal dwNumberOfBytesToFlush As Long) As Long

マップトファイルのビュー内にある、指定された範囲のデータをディスクに書き込む。

パラメータ
lpBaseAddress
    マップトファイルに対応するディスクへ書き込むべきバイト範囲のベースアドレス(開始アドレス)を指定する。
dwNumberOfBytesToFlush
    書き込み対象のバイト数を指定する。0 を指定すると、ベースアドレスからマッピングの最後までのデータがディスクに書き込まれる。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、 関数を使う。

解説
    この関数は、指定した範囲内のすべてのダーティページをディスクに書き込む。ダーティページとは、ファイルビューをマップした後にないよう

    が変更されたページのことである。
    メモリマップトファイルの書き込みをネットワーク経由で実行する場合、FlushViewOfFile はローカルコンピュータでそのデータの書き込みを行

    ったことを保証するが、データがリモートコンピュータにある場合、書き込みが終わったことを保証するわけではない。そして、サーバーはその

    データをリモート側でキャッシュしている可能性がある。そのため、データを物理的にディスクに書き込む前に、FlushViewOfFile が制御を返

    す可能性がある。ただし、CreateFile 関数を使ってファイルを開く際に FILE_FLAG_WRITE_THROUGH フラグを指定すると、物理的な

    書き込みが完了した後で FlushViewOfFile が制御を返すようになる。