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 |