ChangerExchangeMedium, fonction (mcd.h)
ChangerExchangeMedium gère les aspects spécifiques de l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_EXCHANGE_MEDIUM.
Syntaxe
NTSTATUS ChangerExchangeMedium(
[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 l’échange de supports, ChangerExchangeMedium retourne l’état retourné par le pilote de port système, ou l’une des valeurs suivantes :
STATUS_SUCCESS
STATUS_DESTINATION_ELEMENT_FULL
STATUS_INVALID_ELEMENT_ADDRESS
STATUS_SOURCE_ELEMENT_EMPTY
Si le changeur ne prend pas en charge l’échange de supports, ChangerExchangeMedium retourne STATUS_INVALID_DEVICE_REQUEST.
Remarques
Cette routine est requise.
ChangerExchangeMedium déplace un élément multimédia d’un élément source vers une destination et de cette destination vers une autre destination. La source et la deuxième destination sont souvent les mêmes, ce qui entraîne un échange simple de supports.
L’indicateur CHANGER_EXCHANGE_MEDIA dans Features0 de la structure GET_CHANGER_PARAMETERS indique si le changeur prend en charge cette fonctionnalité. Un changement qui prend en charge l’échange de supports a généralement deux mécanismes de sélecteur sur un seul élément de transport, ou au moins deux éléments de transport. Un changement doté d’un mécanisme de sélecteur unique peut prendre en charge l’échange de support via l’émulation de la commande.
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 la routine changerExchangeMedium du pilote de miniclasse. Irp ->SystemBuffer pointe vers une structure CHANGER_EXCHANGE_MEDIUM en tant que paramètre d’entrée qui indique l’élément de transport et la destination à définir.
ChangerExchangeMedium vérifie d’abord que les adresses d’élément de transport, source et de destination sont valides, puis convertit les adresses d’élément de base zéro en adresses d’éléments spécifiques à l’appareil. Il génère ensuite une SRB avec une base de données CDB pour échanger le média et l’envoie au pilote de port système.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Bureau |
d’en-tête | mcd.h (include Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |