ChangerExchangeMedium, fonction (mcd.h)
ChangerExchangeMedium gère les aspects spécifiques à 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 retournée
Si le changeur prend en charge l’échange de média, ChangerExchangeMedium retourne la status retournée 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 médias, ChangerExchangeMedium retourne STATUS_INVALID_DEVICE_REQUEST.
Remarques
Cette routine est obligatoire.
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 identiques, ce qui entraîne un simple échange de média.
L’indicateur CHANGER_EXCHANGE_MEDIA dans Features0 de la structure GET_CHANGER_PARAMETERS indique si le changeur prend en charge cette fonctionnalité. Un changeur qui prend en charge l’échange de média 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 changeur qui dispose 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 changeur 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 d’un pilote 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, de source et de destination sont valides, puis convertit les adresses d’élément de base zéro en adresses d’élément spécifiques à l’appareil. Il génère ensuite un SRB avec une CDB pour échanger le média et l’envoie au pilote de port système.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | mcd.h (inclure Mcd.h, Ntddchgr.h) |
IRQL | PASSIVE_LEVEL |