TAPE_ERROR_ROUTINE fonction de rappel (minitape.h)
TAPE_ERROR_ROUTINE fournit une gestion des erreurs spécifique à l’appareil lorsqu’un SRB est terminé avec un état d’erreur. Cette routine est facultative.
Syntaxe
TAPE_ERROR_ROUTINE TapeErrorRoutine;
void TapeErrorRoutine(
[in] PVOID MinitapeExtension,
[in] PSCSI_REQUEST_BLOCK Srb,
[in, out] PTAPE_STATUS TapeStatus
)
{...}
Paramètres
[in] MinitapeExtension
Pointeur vers l’extension minitape spécifique au pilote. Il s’agit NULL si le pilote de miniclasse n’a pas demandé d’extension de minitape lorsqu’il a initialisé.
[in] Srb
Pointeur vers la SRB pour l’opération qui a échoué.
[in, out] TapeStatus
Pointeur vers le TAPE_STATUS défini par le pilote de classe de bande. Le pilote miniclasse de bande peut modifier le TAPE_STATUS ou le laisser inchangé.
Valeur de retour
Aucun
Remarques
La plupart des pilotes miniclasses de bande ne fournissent pas de routine de TAPE_ERROR_ROUTINE, car les codes de TAPE_STATUS définis par le pilote de classe de bande sont appropriés.
Toutefois, pour certains appareils, un pilote miniclasse de bande peut identifier un code d’erreur plus approprié que le pilote de classe de bande. Par exemple, si le pilote de classe de bande retourne TAPE_STATUS_BUS_RESET, le pilote miniclasse de bande peut être en mesure de déterminer que le problème réel est plus précisément représenté par TAPE_STATUS_NO_MEDIA pour certains appareils.
Un pilote de miniclasse de bande spécifie éventuellement un point d’entrée pour sa routine de TAPE_ERROR_ROUTINE dans la structure TAPE_INIT_DATA_EX qu’il passe à TapeClassInitialize de sa routine DriverEntry. Pour un pilote de miniclasse de ce type, lorsqu’une erreur se produit pendant une commande de lecture, d’écriture ou de contrôle de périphérique, le pilote de classe de bande définit un code TAPE_STATUS approprié et appelle la routine de TAPE_ERROR_ROUTINE du pilote miniclasse avec l’extension minitape, le SRB ayant échoué et le code TAPE_STATUS qui serait retourné.
TAPE_ERROR_ROUTINE détermine s’il faut modifier l’état fourni par le pilote de classe de bande en fonction des paramètres d’entrée et de sa connaissance de l’appareil. Si le bit SRB_STATUS_AUTOSENSE_VALID est défini dans >SrbStatus, le SRB contient des informations de sens SCSI à SenseInfoBuffer. La longueur de la mémoire tampon est SenseInfoBufferLength. La routine TAPE_ERROR_ROUTINE doit examiner ces informations avec le SrbStatus et ScsiStatus dans la SRB pour déterminer s’il faut modifier le TAPE_STATUS retourné.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | minitape.h (include Minitape.h) |