Vaciar datos almacenados en caché durante las operaciones de PIO
En algunas plataformas, las memorias caché de datos y instrucciones del procesador presentan anomalías de coherencia de caché durante las operaciones de lectura de PIO.
Nota Para mantener la integridad de los datos durante sus operaciones de lectura, los controladores que usan PIO deben seguir esta guía: Llame a KeFlushIoBuffers al final de cada operación de lectura.
Por ejemplo, un controlador que realiza una transferencia pio desde su dispositivo a la memoria del sistema debe llamar a KeFlushIoBuffers al final de cada operación de transferencia de dispositivos. Como otro ejemplo, un controlador que lee una secuencia de registros de dispositivo en la memoria del sistema debe llamar a KeFlushIoBuffers al final de la secuencia. De lo contrario, un controlador de este tipo podría intentar acceder a los datos que todavía están en la memoria caché de datos del procesador, en lugar de en la memoria del sistema, en algunas plataformas.
KeFlushIoBuffers no hace nada si se puede confiar en el procesador para mantener la coherencia de caché, por lo que las llamadas a esta rutina de soporte técnico no tienen casi ninguna sobrecarga en dicha plataforma.