Partager via


ChangerReinitializeUnit, fonction (mcd.h)

ChangerReinitializeUnit gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_REINITIALIZE_TRANSPORT.

Syntaxe

NTSTATUS ChangerReinitializeUnit(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] PIRP           Irp
);

Paramètres

[in] DeviceObject

Pointeur vers l’objet d’appareil qui représente le changeur.

[in] Irp

Pointeur vers l’IRP.

Valeur de retour

Si le changeur prend en charge la recalibration d’un élément de transport, ChangerReinitializeUnit retourne la valeur STATUS_XXX retournée par le pilote de port système, ou l’une des valeurs suivantes :

STATUS_SUCCESS

STATUS_INVALID_ELEMENT_ADDRESS

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

Si le changeur ne prend pas en charge la recalibrating d’un élément de transport, ChangerReinitializeUnit retourne STATUS_INVALID_DEVICE_REQUEST.

Remarques

Cette routine est requise.

ChangerReinitializeUnit entraîne la recalibrer son élément de transport. Selon le changement, cela peut retourner le transport à une position de « domicile ». Le pilote de classe de changement appelle généralement ChangerReinitializeUnit une fois le changement activé ou une application appelante a lancé une opération de récupération. L’indicateur CHANGER_DEVICE_REINITIALIZE_CAPABLE dans Features0 de GET_CHANGER_PARAMETERS indique si le transport du changeur prend en charge la recalibration dans ces circonstances.

Le pilote de classe de changement vérifie la longueur de la mémoire tampon d’entrée à l’emplacement de la pile d’E/S avant d’appeler ChangerReinitializeUnit. Irp ->SystemBuffer pointe vers une structure CHANGER_ELEMENT qui indique l’élément à recalibrer.

ChangerReinitializeUnit génère une SRB avec une base de données CDB pour positionner l’élément de transport et l’envoyer au pilote de port système.

ChangerReinitializeUnit définit le champ Information dans le bloc d’état d’E/S sur taille de(CHANGER_ELEMENT) avant de revenir au pilote de classe de changement.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête mcd.h (include Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Voir aussi

, IOCTL_CHANGER_REINITIALIZE_TRANSPORT

CHANGER_ELEMENT

GET_CHANGER_PARAMETERS