Liberando dados armazenados em cache durante operações de PIO
Em algumas plataformas, as instruções e os caches de dados no processador exibem anomalias de coerência de cache durante operações de leitura de PIO.
Nota Para manter a integridade dos dados durante suas operações de leitura, os drivers que usam PIO devem seguir esta diretriz: Chamar KeFlushIoBuffers no final de cada operação de leitura.
Por exemplo, um driver que faz uma transferência de PIO de seu dispositivo para a memória do sistema deve chamar KeFlushIoBuffers no final de cada operação de transferência de dispositivo. Como outro exemplo, um driver que lê uma sequência de registros de dispositivo na memória do sistema deve chamar KeFlushIoBuffers no final da sequência. Caso contrário, esse driver pode tentar acessar dados que ainda estão no cache de dados do processador, em vez de na memória do sistema, em algumas plataformas.
KeFlushIoBuffers não fará nada se o processador puder ser confiado para manter a coerência do cache, portanto, as chamadas para essa rotina de suporte quase não têm sobrecarga em tal plataforma.