排清 PIO 作業期間的快取數據

在某些平臺上,處理器中的指令和數據快取會在 PIO 讀取作業期間呈現快取一致性異常。

注意 若要在讀取作業期間維護數據完整性,使用 PIO 的驅動程序必須遵循下列指導方針:在每個讀取作業結束時呼叫 KeFlushIoBuffers

例如,從裝置到系統記憶體進行 PIO 傳輸的驅動程式應該在每個裝置傳輸作業結束時呼叫 KeFlushIoBuffers 。 另一個範例是,將裝置緩存器序列讀取到系統記憶體的驅動程式應該在序列結尾呼叫 KeFlushIoBuffers 。 否則,這類驅動程式可能會嘗試存取仍在處理器數據快取中的數據,而不是在某些平臺上的系統記憶體中。

KeFlushIoBuffers 如果處理器可以依賴以維護快取共通,因此對這個支援例程的呼叫在這類平臺中幾乎沒有任何額外負荷。