Partager via


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

Voir aussi

CHANGER_ELEMENT

CHANGER_EXCHANGE_MEDIUM

ChangerMoveMedium

GET_CHANGER_PARAMETERS