Scaricamento dei dati memorizzati nella cache durante operazioni PIO

In alcune piattaforme, le istruzioni e le cache dei dati nel processore presentano anomalie di coerency cache durante le operazioni di lettura PIO.

Nota Per mantenere l'integrità dei dati durante le operazioni di lettura, i driver che usano PIO devono seguire questa linea guida: Chiamare KeFlushIoBuffers alla fine di ogni operazione di lettura.

Ad esempio, un driver che effettua un trasferimento PIO dal dispositivo alla memoria di sistema deve chiamare KeFlushIoBuffers alla fine di ogni operazione di trasferimento del dispositivo. Come un altro esempio, un driver che legge una sequenza di registri del dispositivo nella memoria di sistema deve chiamare KeFlushIoBuffers alla fine della sequenza. In caso contrario, tale driver potrebbe tentare di accedere ai dati ancora presenti nella cache dei dati del processore, anziché nella memoria di sistema, in alcune piattaforme.

KeFlushIoBuffers non fa nulla se il processore può essere basato su per mantenere la coherency della cache, quindi le chiamate a questa routine di supporto non hanno quasi alcun sovraccarico in tale piattaforma.