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