Compartir a través de


TAPE_ERROR_ROUTINE función de devolución de llamada (minitape.h)

TAPE_ERROR_ROUTINE proporciona control de errores específicos del dispositivo cuando se completa una SRB con un estado de error. Esta rutina es opcional.

Sintaxis

TAPE_ERROR_ROUTINE TapeErrorRoutine;

void TapeErrorRoutine(
  [in]      PVOID MinitapeExtension,
  [in]      PSCSI_REQUEST_BLOCK Srb,
  [in, out] PTAPE_STATUS TapeStatus
)
{...}

Parámetros

[in] MinitapeExtension

Puntero a la extensión de minitape específica del controlador. Esto es null si el controlador de miniclase no solicitó una extensión de minitape cuando se inicializó.

[in] Srb

Puntero a la SRB para la operación que produjo un error.

[in, out] TapeStatus

Puntero al TAPE_STATUS establecido por el controlador de clase de cinta. El controlador de miniclase de cinta puede cambiar el TAPE_STATUS o dejarlo sin cambios.

Valor devuelto

Ninguno

Observaciones

La mayoría de los controladores de miniclase de cinta no proporcionan una rutina de TAPE_ERROR_ROUTINE porque los códigos de TAPE_STATUS establecidos por el controlador de clase de cinta son adecuados.

Sin embargo, para algunos dispositivos, un controlador de miniclase de cinta puede identificar un código de error más adecuado que el controlador de clase de cinta. Por ejemplo, si el controlador de clase de cinta devuelve TAPE_STATUS_BUS_RESET, es posible que el controlador de miniclase de cinta pueda determinar que el problema real se representa con mayor precisión mediante TAPE_STATUS_NO_MEDIA para algunos dispositivos.

Opcionalmente, un controlador de miniclase de cinta especifica un punto de entrada para su rutina de TAPE_ERROR_ROUTINE en la estructura TAPE_INIT_DATA_EX que pasa a TapeClassInitialize desde su rutina de DriverEntry. Para este tipo de controlador de miniclase, cuando se produce un error durante un comando de lectura, escritura o control de dispositivo, el controlador de clase de cinta establece un código TAPE_STATUS adecuado y llama a la rutina del controlador de miniclase TAPE_ERROR_ROUTINE con la extensión minitape, el SRB con errores y el código de TAPE_STATUS que se devolvería.

TAPE_ERROR_ROUTINE determina si se debe modificar el estado proporcionado por el controlador de clase de cinta en función de los parámetros de entrada y su conocimiento del dispositivo. Si el bit de SRB_STATUS_AUTOSENSE_VALID se establece en Srb->SrbStatus, el SRB contiene información de sentido SCSI en SenseInfoBuffer. La longitud del búfer es SenseInfoBufferLength. La rutina de TAPE_ERROR_ROUTINE debe examinar esta información junto con el SrbStatus y ScsiStatus en el SRB para determinar si se debe cambiar el TAPE_STATUS devuelto.

Requisitos

Requisito Valor
de la plataforma de destino de Escritorio
encabezado de minitape.h (incluya Minitape.h)

Consulte también

DriverEntry of Tape Miniclass Driver

SCSI_REQUEST_BLOCK

TAPE_INIT_DATA_EX

TAPE_STATUS

tapeClassInitialize