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 |