Partager via


ChangerSetPosition, fonction (mcd.h)

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

Syntaxe

NTSTATUS ChangerSetPosition(
  [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 la définition de la position de l’élément de transport, ChangerSetPosition retourne l’état retourné par le pilote de port système ou l’une des valeurs suivantes :

STATUS_SUCCESS

STATUS_INFO_LENGTH_MISMATCH

STATUS_INVALID_PARAMETER

STATUS_INSUFFICIENT_RESOURCES

Si le changeur ne prend pas en charge la définition de la position de l’élément de transport, ChangeSetPosition retourne STATUS_INVALID_DEVICE_REQUEST.

Remarques

Cette routine est requise.

ChangerSetPosition définit le mécanisme de transport robotisé du changeur sur la destination spécifiée, généralement pour optimiser le déplacement ou l’échange de supports en positionnant d’abord le transport.

L’indicateur CHANGER_POSITION_TO_ELEMENT dans Features0 de GET_CHANGER_PARAMETERS indique si le changement prend en charge cette fonctionnalité.

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 ChangerSetPosition. Irp ->SystemBuffer pointe vers une structure CHANGER_SET_POSITION en tant que paramètre d’entrée qui indique l’élément de transport et la destination à définir.

ChangerSetPosition vérifie d’abord que les adresses des éléments de transport et de destination sont valides et convertit les adresses d’élément 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 positionner l’élément et l’envoie au pilote de port système.

ChangerSetPosition définit le champ Informations de dans le bloc d’état d’E/S sur taille de(CHANGER_SET_POSITION) avant de revenir au pilote de classe de changement.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête mcd.h (include Mcd.h, Ntddchgr.h)
IRQL PASSIVE_LEVEL

Voir aussi

, IOCTL_CHANGER_SET_POSITION

CHANGER_ELEMENT

CHANGER_SET_POSITION