Rutinas de minipuerto del controlador Storport

Un controlador de minipuerto que funcione con el controlador storport debe contener implementaciones de las descripciones rutinarias enumeradas en esta sección y debe exponerlos a través de una estructura de HW_INITIALIZATION_DATA durante la fase de inicialización del controlador de miniport.

Las rutinas del controlador de minipuerto de Storport son en la mayoría de los aspectos equivalentes a sus homólogos de puerto SCSI (consulte Rutinas del controlador de miniport SCSI para obtener más información). Sin embargo, hay diferencias importantes entre el diseño del controlador de puerto SCSI y el del controlador Storport, y estas rutinas deben adaptarse a esas diferencias.

Por ejemplo, los controladores de minipuerto que funcionan con el controlador storport siempre deben estar preparados para recibir otra solicitud de E/S después de que se haya completado la rutina HwStorStartIo . No es necesario un controlador de miniporte que funcione con el puerto SCSI para hacerlo. La versión del puerto SCSI no recibe una nueva solicitud de E/S hasta que señala explícitamente al controlador de puerto, mediante la función StorPortNotification , que está preparado para controlar otra solicitud.

Si la versión de Storport del controlador de miniport no puede controlar una solicitud en el momento en que se envía, tiene un conjunto de funciones de administración de colas, no disponible para la versión del puerto SCSI, que le permite tratar con la sobrecarga. Al igual que la versión del puerto SCSI, la versión de Storport del controlador de miniport completa la solicitud con SRB_STATUS_BUSY, pero a diferencia de la versión del puerto SCSI, también puede marcar la cola del dispositivo como ocupada mediante la rutina StorPortDeviceBusy . Las funciones similares permiten al controlador de minipuerto pausar y reanudar el procesamiento en todo el adaptador.

Para obtener más información sobre las rutinas de soporte técnico proporcionadas por el controlador Storport, consulte Rutinas de soporte técnico del controlador de Storport.

Para obtener más información sobre el controlador Storport, consulte Controladores de puerto de almacenamiento.

A continuación se muestran rutinas de controladores de minipuerto:

Rutina Descripción
HW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE Controla una interrupción señalada (MSI) de un mensaje.
HW_ADAPTER_CONTROL Realiza operaciones sincrónicas para controlar el estado o el comportamiento de un adaptador, como detener o reiniciar el HBA para la administración de energía.
HW_BUILDIO Procesa la SRB con acceso no sincronizado a estructuras de datos del sistema compartidas antes de pasarla a HwStorStartIo.
HW_DPC_ROUTINE Rutina aplazada para su ejecución en DISPATCH IRQL mediante el mecanismo de llamada a procedimiento diferido (DPC).
HW_FIND_ADAPTER Usa la configuración proporcionada para determinar si se admite un HBA específico y, si es así, devolver información de configuración sobre ese adaptador.
HW_INITIALIZE Inicializa el controlador de minipuerto después de que se produzca un reinicio del sistema o un error de alimentación.
HW_INTERRUPT El controlador storport llama a la rutina HwStorInterrupt después de que el HBA genere una solicitud de interrupción.
HW_PASSIVE_INITIALIZE_ROUTINE Se le llama después de la rutina HwStorInitialize cuando el IRQL actual está en PASSIVE_LEVEL.
HW_RESET_BUS Lo llama el controlador de puerto para borrar las condiciones de error.
HW_STARTIO El controlador storport llama a la rutina HwStorStartIo una vez para cada solicitud de E/S entrante.
HW_TIMER Se llama después del intervalo que se especifica cuando el controlador de minipuerto llamó a StorPortNotification con el valor RequestTimerCallNotificationType .
HW_TRACING_ENABLED Permite a Storport notificar a un miniporte que está habilitado el seguimiento de eventos.
HW_UNIT_CONTROL Se llama para realizar operaciones sincrónicas para controlar el estado del dispositivo de unidad de almacenamiento. Se notifica al controlador de minipuerto que inicie una unidad o controle una transición de estado de alimentación para un dispositivo de unidad.
HW_WORKITEM Función de devolución de llamada proporcionada por miniporte para procesar una solicitud de elemento de trabajo de Storport.
STORPORT_TELEMETRY_EVENT Describe la carga de datos de telemetría de miniporte.
StorPortLogTelemetry Registra un evento de telemetría de miniporte para ayudar a diagnosticar o recopilar información útil. El minipuerto puede registrar ocho pares nombre-valor de uso general y un búfer con una longitud máxima de 4 KB, así como varios campos relacionados con eventos definidos en la estructura STORPORT_TELEMETRY_EVENT.