ChangerError-Funktion (mcd.h)
ChangerError führt 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-Code an. Der Changer-Miniklassentreiber kann den status ändern oder unverändert lassen.
Retry
Zeiger auf ein Flag, das angibt, ob die Anforderung wiederholt werden soll. Der Changer-Miniklassentreiber kann dieses Flag festlegen oder unverändert lassen.
Rückgabewert
Keine
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 Changer-Klassentreibers auf. ChangerClassError führt geräteunabhängige Fehlerbehandlung durch und ruft die ChangerError-Routine des Changer-Miniklassentreibers auf.
ChangerError überprüft zuerst Srb-SrbStatus> mit SRB_STATUS_AUTOSENSE_VALID, um sicherzustellen, dass der sinnvolle Datenpuffer gültig ist. Wenn ja, wird die Sense-Daten in Srb-SenseInfoBuffer> überprüft, um zu ermitteln, ob *Status mit einem genaueren STATUS_XXX-Code aktualisiert werden soll, und/oder das Wiederholungsflag festlegen, bevor sie zum Changerklassentreiber zurückkehren. Die Wiederholungsanzahl des Changerklassentreibers bestimmt, ob der SRB tatsächlich wiederholt wird.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |