função de retorno de chamada TAPE_ERROR_ROUTINE (minitape.h)

TAPE_ERROR_ROUTINE fornece tratamento de erro específico do dispositivo quando um SRB é concluído com um erro status. Essa rotina é opcional.

Sintaxe

TAPE_ERROR_ROUTINE TapeErrorRoutine;

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

Parâmetros

[in] MinitapeExtension

Ponteiro para a extensão de minitape específica do driver. Isso será NULL se o driver de miniclasse não solicitar uma extensão de minitape quando ele for inicializado.

[in] Srb

Ponteiro para o SRB para a operação que falhou.

[in, out] TapeStatus

Ponteiro para o TAPE_STATUS definido pelo driver de classe de fita. O driver de miniclasse de fita pode alterar o TAPE_STATUS ou deixá-lo inalterado.

Retornar valor

Nenhum

Comentários

A maioria dos drivers de miniclasse de fita não fornece uma rotina TAPE_ERROR_ROUTINE porque os códigos de TAPE_STATUS definidos pelo driver de classe de fita são apropriados.

Para alguns dispositivos, no entanto, um driver de miniclasse de fita pode identificar um código de erro mais apropriado do que o driver de classe de fita. Por exemplo, se o driver de classe de fita retornar TAPE_STATUS_BUS_RESET, o driver de miniclasse de fita poderá determinar que o problema real é representado com mais precisão por TAPE_STATUS_NO_MEDIA para alguns dispositivos.

Opcionalmente, um driver de miniclasse de fita especifica um ponto de entrada para sua rotina de TAPE_ERROR_ROUTINE na estrutura TAPE_INIT_DATA_EX que ele passa para TapeClassInitialize de sua rotina driverEntry . Para esse driver de miniclasse, quando ocorre um erro durante um comando de leitura, gravação ou controle de dispositivo, o driver de classe de fita define um código de TAPE_STATUS apropriado e chama a rotina de TAPE_ERROR_ROUTINE do driver de miniclasse com a extensão de minitape, o SRB com falha e o código TAPE_STATUS que seria retornado.

TAPE_ERROR_ROUTINE determina se é necessário alterar o status fornecido pelo driver de classe de fita com base nos parâmetros de entrada e no conhecimento dele sobre o dispositivo. Se o bit SRB_STATUS_AUTOSENSE_VALID estiver definido em Srb-SrbStatus>, o SRB conterá informações de sentido SCSI no SenseInfoBuffer. O comprimento do buffer é SenseInfoBufferLength. A rotina de TAPE_ERROR_ROUTINE deve examinar essas informações junto com srbStatus e ScsiStatus no SRB para determinar se a TAPE_STATUS retornada.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho minitape.h (inclua Minitape.h)

Confira também

DriverEntry of Tape Miniclass Driver

SCSI_REQUEST_BLOCK

TAPE_INIT_DATA_EX

TAPE_STATUS

TapeClassInitialize