ChangerError, fonction (mcd.h)
ChangeError gère les 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 de miniclasse de changeur peut modifier le status ou le laisser tel qu’il est.
Retry
Pointeur vers un indicateur qui indique s’il faut réessayer la demande. Le pilote de miniclasse du changeur peut définir cet indicateur ou le laisser tel qu’il est.
Valeur de retour
None
Remarques
Cette routine est obligatoire.
Si un SRB échoue avec un status SCSI de CHECK CONDITION, le pilote de classe SCSI appelle la routine ChangerClassError du pilote de classe changeur. ChangerClassError gère les erreurs indépendamment de l’appareil et appelle la routine ChangerError du pilote de la miniclasse du changeur.
ChangeError vérifie d’abord Srb-SrbStatus> avec SRB_STATUS_AUTOSENSE_VALID pour s’assurer que la mémoire tampon de données sense 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 changeur. Le nombre de nouvelles tentatives du pilote de la classe change détermine si le SRB est réellement retenté.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | mcd.h (inclure Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |