Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cada controlador de minipuerto Storport debe notificar al controlador de puerto del sistema los siguientes tipos de errores SCSI. El controlador debe establecer estos errores en el miembro SrbStatus antes de completar el SRB que estaba procesando cuando se produjo el error:
SRB_STATUS_ERROR (si el HBA devuelve un error de bus no específico)
SRB_STATUS_PARITY_ERROR
SRB_STATUS_UNEXPECTED_BUS_FREE
SRB_STATUS_SELECTION_TIMEOUT
SRB_STATUS_COMMAND_TIMEOUT
SRB_STATUS_MESSAGE_REJECTED
SRB_STATUS_NO_DEVICE
SRB_STATUS_NO_HBA
SRB_STATUS_DATA_OVERRUN (también se devuelve para las infrautilizaciones)
SRB_STATUS_PHASE_SEQUENCE_FAILURE
SRB_STATUS_BUSY (TID ocupado)
Para una infrautilización de datos, el controlador de minipuerto debe actualizar DataTransferLength de SRB para indicar la cantidad de datos que se transfirieron realmente.
Además, el controlador de minipuerto debe usar las instrucciones siguientes para registrar algunos de los errores anteriores pasando el SRB a StorPortLogError:
- Registre un error a discreción del escritor de controladores para SRB_STATUS_ERROR.
- Registre siempre un error para SRB_STATUS_PARITY_ERROR.
- Registre siempre un error para SRB_STATUS_UNEXPECTED_BUS_FREE.
- Registre siempre un error para SRB_STATUS_SELECTION_TIMEOUT.
- Registre siempre un error para SRB_STATUS_COMMAND_TIMEOUT.
- Registre un error para SRB_STATUS_DATA_OVERRUN cada vez que se produzca una saturación, pero no cuando se produzca una infrautilización.
- Registre siempre un error para SRB_STATUS_PHASE_SEQUENCE_FAILURE.
- Registre siempre un error para SRB_STATUS_BUSY para errores de hardware.
Para registrar un error, un controlador de minipuerto llama a StorPortLogError mediante uno de los siguientes códigos de advertencia o error definidos por el sistema:
- SP_BUS_PARITY_ERROR se asigna a SRB_STATUS_PARITY_ERROR
- SP_UNEXPECTED_DISCONNECT (por la unidad lógica de destino)
- SP_INVALID_RESELECTION se asigna a SRB_STATUS_PHASE_SEQUENCE_FAILURE o SRB_STATUS_ERROR
- SP_BUS_TIME_OUT se asigna a SRB_STATUS_SELECTION_TIMEOUT
- SP_REQUEST_TIMEOUT se asigna a SRB_STATUS_COMMAND_TIMEOUT
- SP_PROTOCOL_ERROR se asigna a SRB_STATUS_PHASE_SELECTION_FAILURE, SRB_STATUS_UNEXPECTED_BUS_FREE o SRB_STATUS_DATA_OVERRUN para una condición de saturación
- SP_INTERNAL_ADAPTER_ERROR se asigna a SRB_STATUS_ERROR
- SP_IRQ_NOT_RESPONDING (advertencia de que el controlador de minipuerto detectó que el HBA ya no genera solicitudes de interrupción).
- SP_BAD_FW_ERROR (donde FW es firmware)
- SP_BAD_FW_WARNING
StorPortLogError asigna un paquete de registro de errores, lo configura y registra el error de E/S en el registro de eventos para el controlador de minipuerto. Los administradores del sistema o los usuarios pueden supervisar la condición de un HBA examinando el registro de eventos del sistema y, si es necesario, volver a configurar, reparar o reemplazar el HBA antes de que se produzca un error.