Compartir vía


Rutinas DispatchRead, DispatchWrite y DispatchReadWrite

Las rutinas DispatchRead y DispatchWrite de un controlador controlan irP con códigos de función de E/S de IRP_MJ_READ y IRP_MJ_WRITE, respectivamente. Como alternativa, una rutina de DispatchReadWrite combinada puede controlar los IRP para ambos códigos de función de E/S.

Cada controlador de un dispositivo desde el que se pueden transferir datos al sistema debe tener una rutina DispatchRead . Cada controlador de un dispositivo al que se pueden transferir datos desde el sistema debe tener una rutina DispatchWrite . Cualquier controlador que transfiera datos en ambas direcciones puede tener una rutina de DispatchReadWrite combinada.

Los controladores de nivel inferior controlan IRP_MJ_READ y IRP_MJ_WRITE solicitudes de forma asincrónica. Por lo tanto, las rutinas DispatchRead o DispatchWrite de los controladores de nivel superior deben pasar estas solicitudes para su posterior procesamiento, siempre que la solicitud tenga parámetros válidos en la ubicación de pila de E/S del controlador del IRP.

Si un controlador configura sus objetos de dispositivo para la E/S almacenada en búfer o directa afecta a cómo controla las solicitudes de transferencia. En concreto, un controlador que usa E/S directa para realizar operaciones DMA podría necesitar dividir solicitudes de transferencia de gran tamaño en una secuencia de operaciones de transferencia más pequeñas para satisfacer una solicitud de IRP_MJ_READ o IRP_MJ_WRITE . Para obtener más información, vea Técnicas de entrada y salida.

En las subsecciones siguientes se describen algunas de las consideraciones de diseño e implementación de rutinas de DispatchReadWrite en controladores de dispositivos de nivel más bajo que usan E/S almacenados en búfer y E/S directa, así como en controladores de nivel superior en capas por encima de ellos:

Control de transferencias de forma asincrónica

DispatchReadWrite mediante E/S almacenadas en búfer

DispatchReadWrite mediante E/S directa

DispatchReadWrite en controladores de Higher-Level

Resumen de rutinas de distribución de lectura y escritura