Interfaz de Storport con los controladores de Storport Miniport

La comunicación entre el controlador storport y los controladores de minipuerto de Storport tiene lugar mediante bloques de solicitud SCSI (SRB) y rutinas de devolución de llamada del controlador de minipuerto. Para obtener una explicación detallada de las rutinas de devolución de llamada del controlador de miniport Storport, consulte Rutinas de controladores de Storport Miniport.

Para obtener información general y definición de las funciones SRB individuales, las marcas de SRB y los valores de estado de SRB, consulte SCSI_REQUEST_BLOCK.

Para obtener discusiones sobre cómo los controladores de minipuerto deben responder a cada función SRB individual, consulte HwStorStartIo.

Storport reenvía srBs a los controladores de miniport de Storport para el procesamiento asincrónico. Normalmente, el controlador de minipuerto tardará algún tiempo en completar la solicitud. Los adaptadores de bus host (HBA) que admiten colas etiquetadas pueden poner en cola las solicitudes internamente y procesarlas en el orden indicado por las etiquetas que Storport asigna a cada solicitud. La estructura de SCSI_REQUEST_BLOCK (SRB) contiene dos miembros que usan los controladores storport y miniport para especificar cómo se deben ordenar los SRB en la cola interna del adaptador de host:

  • QueueTag: Storport asigna un valor count, o "tag", al miembro QueuedTag de cada SRB. Esta etiqueta indica el orden en el que el adaptador debe procesar los paquetes. Los valores de etiqueta también permiten a Storport realizar un seguimiento de qué SRB siguen pendientes, que se han completado correctamente y que han agotado el tiempo de espera.

  • QueueAction: indica el mensaje etiquetado en cola que se va a usar cuando la marca de SRB_FLAGS_QUEUE_ACTION_ENABLE se establece en SRB. SrbFlags. El uso del miniporte de QueueAction es específico del miniporte. Los miniportes basados en SCSI pueden seguir la especificación SCSI si el HBA lo admite. QueueAction puede ser uno de los siguientes valores:

Value Significado
SRB_SIMPLE_TAG_REQUEST Poner en cola la solicitud y ejecutarla en cualquier orden una vez finalizadas todas las solicitudes de SRB_HEAD_OF_QUEUE_TAG_REQUEST anteriores y SRB_ORDERED_QUEUE_TAG_REQUEST.
SRB_ORDERED_QUEUE_TAG_REQUEST Ejecute la solicitud solo después de que se hayan completado todos los SRB_HEAD_OF_QUEUE_TAG_REQUEST anteriores y todas las solicitudes anteriores.
SRB_HEAD_OF_QUEUE_TAG_REQUEST Coloque la solicitud en la parte delantera de la cola y ejecútela delante de todas las demás solicitudes de la cola, incluidas todas las demás solicitudes etiquetadas SRB_HEAD_OF_QUEUE_TAG_REQUEST.

Consulte la especificación SCSI para obtener más información.