Freigeben über


ChangerError-Funktion (mcd.h)

ChangerError führt eine gerätespezifische Fehlerbehandlung durch.

Syntax

void ChangerError(
  PDEVICE_OBJECT      DeviceObject,
  PSCSI_REQUEST_BLOCK Srb,
  NTSTATUS            *Status,
  BOOLEAN             *Retry
);

Parameter

DeviceObject

Zeiger auf das Geräteobjekt, das den Changer darstellt.

Srb

Zeiger auf den SCSI-Anforderungsblock für den fehlgeschlagenen Vorgang.

Status

Gibt die Adresse des vom System festgelegten STATUS_XXX- Codes an. Der Changer-Miniklassentreiber kann den Status ändern oder ihn wie folgt belassen.

Retry

Zeigen Sie auf ein Flag, das angibt, ob die Anforderung erneut versucht werden soll. Der Changer-Miniklassentreiber kann dieses Kennzeichen festlegen oder es wie folgt belassen.

Rückgabewert

Nichts

Bemerkungen

Diese Routine ist erforderlich.

Wenn ein SRB mit einem SCSI-Status von CHECK CONDITION fehlschlägt, ruft der SCSI-Klassentreiber die ChangerClassError Routine des Änderungsklassentreibers auf. ChangerClassError führt eine geräteunabhängige Fehlerbehandlung durch und ruft die ChangerError Routine des ChangerError-Treibers auf.

ChangerError überprüft zuerst Srb-–>SrbStatus mit SRB_STATUS_AUTOSENSE_VALID, um sicherzustellen, dass der sinnvolle Datenpuffer gültig ist. Wenn ja, überprüft es die Sinnesdaten in Srb->SenseInfoBuffer, um zu bestimmen, ob *Status mit einem genaueren STATUS_XXX- Code aktualisiert werden soll und/oder ob das Retry Flag festgelegt werden soll, bevor sie zum Änderungsklassentreiber zurückkehren. Die Wiederholungsanzahl des Änderungsklassentreibers bestimmt, ob der SRB tatsächlich wiederholt wird.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- mcd.h (include Mcd.h, Ntddchgr.h)
IRQL- PASSIVE_LEVEL