PIO 操作中のキャッシュ データのフラッシュ

一部のプラットフォームでは、プロセッサ内の命令キャッシュとデータ キャッシュは、PIO 読み取り操作中にキャッシュの一貫性の異常を示します。

読み取り操作中にデータの整合性を維持するため、PIO を使用するドライバーは、以下のガイドラインに従う必要があります。各読み取り操作の最後に KeFlushIoBuffers を呼び出します。

たとえば、デバイスからシステム メモリへの PIO 転送を行うドライバーは、各デバイス転送操作の最後に KeFlushIoBuffers を呼び出す必要があります。 別の例として、システム メモリにデバイス レジスタのシーケンスを読み取るドライバーは、シーケンスの最後に KeFlushIoBuffers を呼び出す必要があります。 それ以外の場合、このようなドライバーは、一部のプラットフォームで、システム メモリではなく、プロセッサのデータ キャッシュ内にあるデータへのアクセスを試みる可能性があります。

キャッシュの一貫性を維持する点でプロセッサに依存できる場合、KeFlushIoBuffers は何も行わないため、このサポート ルーチンの呼び出しによるオーバーヘッドは、このようなプラットフォームにおいてほとんどありません。