Partager via


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

Voir aussi

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS