Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
TAPE_ERROR_ROUTINE bietet eine gerätespezifische Fehlerbehandlung, wenn ein SRB mit einem Fehlerstatus abgeschlossen ist. Diese Routine ist optional.
Syntax
TAPE_ERROR_ROUTINE TapeErrorRoutine;
VOID TapeErrorRoutine(
[in] PVOID MinitapeExtension,
[in] PSCSI_REQUEST_BLOCK Srb,
[in, out] PTAPE_STATUS TapeStatus
)
{...}
Parameter
[in] MinitapeExtension
Zeiger auf die treiberspezifische Minitape-Erweiterung. Dies ist NULL-, wenn der Miniklassentreiber beim Initialisieren keine Minitape-Erweiterung angefordert hat.
[in] Srb
Zeiger auf den SRB für den fehlgeschlagenen Vorgang.
[in, out] TapeStatus
Zeigen Sie auf die vom Bandklassentreiber festgelegte TAPE_STATUS. Der Tape Miniclass-Treiber kann die TAPE_STATUS ändern oder unverändert lassen.
Rückgabewert
Nichts
Bemerkungen
Die meisten Tape Miniclass-Treiber bieten keine TAPE_ERROR_ROUTINE Routine, da die vom Bandklassentreiber festgelegten TAPE_STATUS Codes geeignet sind.
Bei einigen Geräten kann ein Band-Miniklassentreiber jedoch einen geeigneteren Fehlercode identifizieren als der Bandklassentreiber. Wenn beispielsweise der Bandklassentreiber TAPE_STATUS_BUS_RESET zurückgibt, kann der Band-Miniklassentreiber feststellen, dass das eigentliche Problem bei einigen Geräten genauer durch TAPE_STATUS_NO_MEDIA dargestellt wird.
Ein Tape Miniclass-Treiber gibt optional einen Einstiegspunkt für seine TAPE_ERROR_ROUTINE Routine in der TAPE_INIT_DATA_EX Struktur an, die er an TapeClassInitial ize über seine DriverEntry Routine übergibt. Wenn bei einem solchen Miniklassentreiber während eines Lese-, Schreib- oder Gerätesteuerungsbefehls ein Fehler auftritt, legt der Bandklassentreiber einen geeigneten TAPE_STATUS Code fest und ruft die TAPE_ERROR_ROUTINE Routine des Miniklassentreibers mit der Minitape-Erweiterung, dem fehlgeschlagenen SRB und dem TAPE_STATUS Code auf, der zurückgegeben würde.
TAPE_ERROR_ROUTINE bestimmt, ob der vom Bandklassentreiber bereitgestellte Status basierend auf den Eingabeparametern und seinem Wissen über das Gerät geändert werden soll. Wenn das SRB_STATUS_AUTOSENSE_VALID Bit in Srb->SrbStatus-festgelegt ist, enthält der SRB SCSI-Sinnesinformationen unter SenseInfoBuffer. Die Länge des Puffers ist SenseInfoBufferLength. Die TAPE_ERROR_ROUTINE Routine sollte diese Informationen zusammen mit den SrbStatus- und ScsiStatus- im SRB untersuchen, um zu bestimmen, ob die zurückgegebenen TAPE_STATUS geändert werden sollen.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform- | Desktop |
| Header- | minitape.h (include Minitape.h) |