Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
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:
Para las solicitudes IRP_MJ_READ y IRP_MJ_WRITE , DO_DIRECT_IO se establece en el miembro Flags de la estructura DEVICE_OBJECT . Para obtener más información, consulte Inicialización de un objeto device.
Para las solicitudes de IRP_MJ_DEVICE_CONTROL y IRP_MJ_INTERNAL_DEVICE_CONTROL , el valor del código IOCTL contiene METHOD_IN_DIRECT o METHOD_OUT_DIRECT como valor TransferType en el valor IOCTL. Para obtener más información, consulte Definición de códigos de control de E/S.
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:
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é.