Auf Englisch lesen

Freigeben über


TAPE_ERROR_ROUTINE Rückruffunktion (minitape.h)

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)

Siehe auch

DriverEntry of Tape Miniclass Driver

SCSI_REQUEST_BLOCK

TAPE_INIT_DATA_EX

TAPE_STATUS

TapeClassInitialize