TAPE_ERROR_ROUTINE funzione di callback (minitape.h)

TAPE_ERROR_ROUTINE fornisce la gestione degli errori specifici del dispositivo quando viene completata una SRB con uno stato di errore. Questa routine è facoltativa.

Sintassi

TAPE_ERROR_ROUTINE TapeErrorRoutine;

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

Parametri

[in] MinitapeExtension

Puntatore all'estensione minitape specifica del driver. Questo è NULL se il driver miniclasse non ha richiesto un'estensione minitape quando è stata inizializzata.

[in] Srb

Puntatore a SRB per l'operazione non riuscita.

[in, out] TapeStatus

Puntatore al TAPE_STATUS impostato dal driver della classe nastro. Il driver miniclasse nastro può modificare il TAPE_STATUS o lasciarlo invariato.

Valore restituito

nessuno

Osservazioni

La maggior parte dei driver di miniclasse nastro non fornisce una routine TAPE_ERROR_ROUTINE perché i codici TAPE_STATUS impostati dal driver della classe nastro sono appropriati.

Per alcuni dispositivi, tuttavia, un driver miniclasse nastro può identificare un codice di errore più appropriato rispetto al driver della classe nastro. Ad esempio, se il driver della classe nastro restituisce TAPE_STATUS_BUS_RESET, il driver miniclasse nastro potrebbe essere in grado di determinare che il problema reale è rappresentato in modo più accurato da TAPE_STATUS_NO_MEDIA per alcuni dispositivi.

Un driver miniclasse nastro specifica facoltativamente un punto di ingresso per la sua routine TAPE_ERROR_ROUTINE nella struttura TAPE_INIT_DATA_EX passa a TapeClassInitialize dalla routine DriverEntry . Per un driver miniclasse, quando si verifica un errore durante un comando di lettura, scrittura o controllo del dispositivo, il driver di classe nastro imposta un codice TAPE_STATUS appropriato e chiama la routine TAPE_ERROR_ROUTINE del driver miniclass con l'estensione minitape, la SRB non riuscita e il codice TAPE_STATUS restituito.

TAPE_ERROR_ROUTINE determina se modificare lo stato fornito dal driver della classe nastro in base ai parametri di input e alla relativa conoscenza del dispositivo. Se il bit di SRB_STATUS_AUTOSENSE_VALID è impostato in Srb-SrbStatus>, la SRB contiene informazioni sul senso SCSI in SenseInfoBuffer. La lunghezza del buffer è SenseInfoBufferLength. La routine TAPE_ERROR_ROUTINE deve esaminare queste informazioni insieme a SrbStatus e SCSIStatus in SRB per determinare se modificare la TAPE_STATUS restituita.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione minitape.h (include Minitape.h)

Vedi anche

DriverEntry of Tape Miniclass Driver

SCSI_REQUEST_BLOCK

TAPE_INIT_DATA_EX

TAPE_STATUS

TapeClassInitialize