Partager via


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