Función ScsiPortLogError (srb.h)
La rutina ScsiPortLogError registra errores en el registro de eventos del sistema cuando un controlador de miniporte o su HBA detecta una condición de error SCSI.
Nota
Los modelos de controlador de puerto SCSI y controlador de minipuerto SCSI pueden modificarse o no estar disponibles en el futuro. En su lugar, use el controlador Storport y los modelos de controlador de minipuerto de Storport .
Sintaxis
SCSIPORT_API VOID ScsiPortLogError(
PVOID HwDeviceExtension,
PSCSI_REQUEST_BLOCK Srb,
UCHAR PathId,
UCHAR TargetId,
UCHAR Lun,
ULONG ErrorCode,
ULONG UniqueId
);
Parámetros
HwDeviceExtension
[in] Puntero a la extensión de dispositivo de hardware. Se trata de un área de almacenamiento por HBA que el controlador de puerto asigna e inicializa en nombre del controlador de minipuerto. Los controladores de minipuerto suelen almacenar información específica de HBA en esta extensión, como el estado del HBA y los intervalos de acceso asignados del HBA. Esta área está disponible para el controlador de minipuerto en el miembro DeviceExtension-HwDeviceExtension> del objeto de dispositivo del HBA inmediatamente después de que el controlador de miniporte llame a ScsiPortInitialize. El controlador de puerto libera esta memoria cuando quita el dispositivo.
Srb
[in, opcional] Puntero a un bloque de solicitud SCSI si hay uno asociado al error. De lo contrario, este parámetro es NULL.
PathId
[in] Identifica el bus SCSI.
TargetId
[in] Identifica el controlador de destino o el dispositivo en el bus.
Lun
[in] Identifica el número de unidad lógica del dispositivo de destino.
ErrorCode
[in] Especifica un código de error. Este parámetro puede ser uno de los valores siguientes como el tipo de error.
Valor | Significado |
---|---|
SP_BAD_FW_ERROR | Indica que el controlador ha detectado un firmware incorrecto o antiguo. No se usará el dispositivo. |
SP_BAD_FW_WARNING | Indica que el controlador ha detectado una tarjeta con firmware antiguo o incorrecto, lo que puede provocar un rendimiento o una funcionalidad reducidos. |
SP_BUS_PARITY_ERROR | Indica que se detectó un error de paridad de bus SCSI. |
SP_BUS_TIME_OUT | Indica una conexión de bus SCSI a una unidad lógica agota el tiempo de espera. |
SP_INTERNAL_ADAPTER_ERROR | Indica que se detectó un error interno de HBA. |
SP_INVALID_RESELECTION | Indica que una unidad lógica se vuelve a seleccionar inesperadamente o con una etiqueta de cola no válida. |
SP_IRQ_NOT_RESPONDING | Indica que el HBA no se interrumpe cuando se espera. |
SP_PROTOCOL_ERROR | Indica que el controlador de minipuerto detectó un error de protocolo de bus SCSI. |
SP_REQUEST_TIMEOUT | Indica que se ha agotado el tiempo de espera de una operación para el controlador. |
SP_UNEXPECTED_DISCONNECT | Indica que un destino se desconecta inesperadamente. |
UniqueId
[in] Especifica un identificador único para el error. Este valor diferencia el error actual de otros errores con el mismo ErrorCode. Para algunos controladores de minipuerto, esto identifica la línea de código donde se detectó el error. Para otros, es información adicional devuelta por el HBA.
Valor devuelto
None
Observaciones
Un controlador de minipuerto debe registrar todos los errores de hardware reales. Sin embargo, no debe registrar errores operativos comunes, como tiempos de espera de selección o restablecimientos de bus.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | srb.h (incluye Miniport.h, Scsi.h) |
Library | Scsiport.lib |