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 |