WindowsやLinuxにおいて、ドライバ開発をする際にはCache操作が必要になることがあるとおもいますが、CacheをWritebackしたり、Invalidateしたりする関数はるのでしょうか?


x86の命令には、WBINVD命令(Write Back and Invalidate Cache)やINVD命令(Invalidate Internal Caches)があると思うので最終的にはこの命令を呼ぶとおもうのですが、これらをラップした関数が用意されているのか教えていただきたいです。

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2017/02/03 18:45:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答0件)

回答はまだありません

  • id:cx20
    以下は Windows の話です。

    カーネルレベルの API は存じ上げていないですが、ユーザーレベルの API としては
    ■ CreateFile API
    https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx
    にてキャッシュの使用・未使用を指定できるようです。

    <参考情報>
    ■ INF: SQL Server でディスク ドライブのキャッシュを使う。
    https://support.microsoft.com/ja-jp/help/234656/information-about-using-disk-drive-caches-with-sql-server-that-every-database-administrator-should-know

    > 先行書き込みログ (WAL) プロトコル
    > :
    > FILE_FLAG_WRITE_THROUGH
    > このオプションは、システムに対して中間キャッシュをスルーしてディスクに直接書きこむよう指示します。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません