Uso de E/S directa

Los controladores para dispositivos que pueden transferir grandes cantidades de datos a la vez deben usar E/S directa para esas transferencias. El uso de E/S directa para transferencias grandes mejora el rendimiento de un controlador, ya que reduce su sobrecarga de interrupción y elimina las operaciones de asignación de memoria y copia inherentes a la E/S almacenada en búfer.

Por lo general, los controladores de dispositivos de almacenamiento masivo solicitan E/S directa para las solicitudes de transferencia, incluidos los controladores de nivel más bajo que usan el acceso directo a la memoria (DMA) o la E/S programada (PIO), así como los controladores intermedios encadenados por encima de ellos.

El administrador de E/S determina que una operación de E/S usa E/S directa como se indica a continuación:

Los controladores que usan E/S directa a veces también usarán E/S almacenada en búfer para controlar algunos IRP. En concreto, los controladores suelen usar E/S almacenada en búfer para algunos códigos de control de E/S para IRP_MJ_DEVICE_CONTROL solicitudes que requieren transferencias de datos, independientemente de si el controlador usa E/S directa para las operaciones de lectura y escritura.

La configuración de una transferencia directa de E/S varía ligeramente, en función de si se usa DMA o PIO. Para más información, consulte:

Uso de E/S directa con DMA

Uso de E/S directa con PIO

Los controladores deben tomar medidas para mantener la coherencia de caché durante las transferencias de DMA y PIO. Para obtener más información, consulte Mantener la coherencia de caché.