ChangerError, fonction (mcd.h)
ChangerError effectue la gestion des erreurs propres à l’appareil.
Syntaxe
void ChangerError(
PDEVICE_OBJECT DeviceObject,
PSCSI_REQUEST_BLOCK Srb,
NTSTATUS *Status,
BOOLEAN *Retry
);
Paramètres
DeviceObject
Pointeur vers l’objet d’appareil qui représente le changeur.
Srb
Pointeur vers le bloc de requête SCSI pour l’opération qui a échoué.
Status
Spécifie l’adresse du code STATUS_XXX défini par le système. Le pilote miniclass de changement peut modifier l’état ou le laisser tel qu’il est.
Retry
Pointeur vers un indicateur qui indique s’il faut réessayer la requête. Le pilote miniclass de changement peut définir cet indicateur ou le laisser tel qu’il est.
Valeur de retour
Aucun
Remarques
Cette routine est requise.
Si un SRB échoue avec un état SCSI de CHECK CONDITION, le pilote de classe SCSI appelle la routine ChangerClassError du pilote de classe de changement. ChangerClassError effectue la gestion des erreurs indépendantes des appareils et appelle la routine ChangerError du pilote changeur miniclass.
ChangerError vérifie d’abord Srb -> SrbStatus avec SRB_STATUS_AUTOSENSE_VALID pour vous assurer que la mémoire tampon de données est valide. Si c’est le cas, il vérifie les données de sens dans Srb ->SenseInfoBuffer pour déterminer s’il faut mettre à jour *Status avec un code STATUS_ XXX plus précis et/ou définir l’indicateur Réessayer avant de revenir au pilote de classe change. Le nombre de nouvelles tentatives du pilote de classe de changement détermine si le SRB est réellement retenté.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |