Compartilhar via


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

TAPE_ERROR_ROUTINE fornece tratamento de erro específico do dispositivo quando um SRB é concluído com um status de erro. 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 é NULL se o driver de miniclasse não solicitou uma extensão de minitape quando ele foi 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.

Valor de retorno

Nenhum

Observações

A maioria dos drivers de miniclasse de fita não fornece uma rotina de 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 de DriverEntry. Para um 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 deve alterar o status fornecido pelo driver de classe de fita com base nos parâmetros de entrada e no seu conhecimento do dispositivo. Se o bit SRB_STATUS_AUTOSENSE_VALID estiver definido em Srb->SrbStatus, o SRB conterá informações de sentido SCSI em SenseInfoBuffer. O comprimento do buffer é SenseInfoBufferLength . A rotina de TAPE_ERROR_ROUTINE deve examinar essas informações juntamente com o SrbStatus e ScsiStatus no SRB para determinar se a TAPE_STATUS retornada.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho minitape.h (inclua Minitape.h)

Consulte também

DriverEntry do de Driver de Miniclasse de Fita

SCSI_REQUEST_BLOCK

TAPE_INIT_DATA_EX

TAPE_STATUS

TapeClassInitialize