Partager via


ChangerSetAccess, fonction (mcd.h)

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

Syntaxe

NTSTATUS ChangerSetAccess(
  [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 l’accès, ChangerSetAccess retourne la valeurXXX STATUS_ retournée par le pilote de port système ou l’une des valeurs suivantes :

STATUS_SUCCESS

STATUS_INSUFFICIENT_RESOURCES

STATUS_INVALID_PARAMETER

Si le changement ne prend pas en charge la définition de l’accès, ChangeSetAccess retourne STATUS_INVALID_DEVICE_REQUEST.

Remarques

Cette routine est requise.

ChangerSetAccess verrous ou déverrouille l’IEport, la porte ou le clavier d’un changeur, et étend ou retire un IEport.

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 ChangerSetAccess. Irp ->SystemBuffer pointe vers une structure CHANGER_SET_ACCESS en tant que paramètre d’entrée qui indique l’élément à définir et l’opération à effectuer.

ChangerSetAccess vérifie d’abord les éléments et opérations non pris en charge et retourne le code d’état approprié pour ceux qu’il ne prend pas en charge.

Ensuite, ChangerSetAccess traduit l’adresse d’élément de base zéro passée par le système à l’adresse d’élément spécifique à l’appareil requise par le changeur.

Enfin, ChangerSetAccess génère une SRB avec une CDB pour l’opération donnée sur l’élément donné et l’envoie au pilote de port système. La commande à utiliser dépend du changement. Par exemple, le pilote de miniclasse Exabyte utilise la commande SCSI PREVENT ALLOW MEDIUM REMOVAL pour verrouiller ou déverrouiller une porte de changement et MOVE MEDIUM pour étendre ou retirer un IEport.

Exigences

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

Voir aussi

CHANGER_SET_ACCESS

GET_CHANGER_PARAMETERS

IOCTL_CHANGER_SET_ACCESS