Partager via


ChangerReinitializeUnit, fonction (mcd.h)

ChangerReinitializeUnit gère les aspects spécifiques à 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 retournée

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 recalibration d’un élément de transport, ChangerReinitializeUnit retourne STATUS_INVALID_DEVICE_REQUEST.

Remarques

Cette routine est obligatoire.

ChangerReinitializeUnit oblige le changeur à recalibrer son élément de transport. Selon le changeur, cela peut renvoyer le transport à une position « d’accueil ». Le pilote de classe de changeur appelle généralement ChangerReinitializeUnit après que le changeur a été mis sous tension ou qu’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 le réétalonnage dans ces circonstances.

Le pilote de classe de changeur vérifie la longueur de la mémoire tampon d’entrée dans 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 un SRB avec une CDB pour positionner l’élément de transport et l’envoie au pilote de port système.

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

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête mcd.h (inclure Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Voir aussi

, IOCTL_CHANGER_REINITIALIZE_TRANSPORT

CHANGER_ELEMENT

GET_CHANGER_PARAMETERS