Partager via


ChangerMoveMedium, fonction (mcd.h)

ChangeMoveMedium gère les aspects spécifiques à l’appareil d’un IRP de contrôle d’appareil avec le code IOCTL IOCTL_CHANGER_MOVE_MEDIUM.

Syntaxe

NTSTATUS ChangerMoveMedium(
  [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

ChangeMoveMedium retourne le status 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_INVALID_DEVICE_REQUEST

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

STATUS_SOURCE_ELEMENT_EMPTY

Remarques

Cette routine est obligatoire.

ChangerMoveMedium déplace un élément multimédia d’un élément à un autre.

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 ChangerMoveMedium. Irp-SystemBuffer>pointe vers une structure CHANGER_MOVE_MEDIUM qui indique l’élément de transport, la source, la destination et s’il faut retourner le support.

ChangeMoveMedium vérifie d’abord que les adresses des éléments de transport, de source et de destination sont valides, puis convertit les adresses d’éléments de base zéro en adresses spécifiques à l’appareil. Il génère ensuite un SRB avec une base de données CDB pour déplacer l’élément multimédia et l’envoie au pilote de port système.

ChangeMoveMedium définit le champ Informations dans le bloc d’E/S status sur sizeof(CHANGER_MOVE_MEDIUM) avant de revenir au pilote de classe changer.

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_MOVE_MEDIUM

ChangerExchangeMedium