Partager via


ChangerSetAccess, fonction (mcd.h)

ChangerSetAccess gère les aspects spécifiques à 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 retournée

Si le changeur prend en charge la définition de l’accès, ChangerSetAccess renvoie la valeur STATUS_XXX 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 changeur ne prend pas en charge l’accès aux paramètres, ChangerSetAccess retourne STATUS_INVALID_DEVICE_REQUEST.

Remarques

Cette routine est obligatoire.

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

Le pilote de classe de changeur vérifie la longueur de la mémoire tampon d’entrée dans 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 recherche d’abord les éléments et les opérations non pris en charge, puis retourne le code status 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 en l’adresse d’élément spécifique à l’appareil requise par le changeur.

Enfin, ChangerSetAccess génère un 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 changeur. Par exemple, le pilote de miniclasse Exabyte utilise la commande SCSI PREVENT ALLOW MEDIUM REMOVAL pour verrouiller ou déverrouiller une porte de changeur et MOVE MEDIUM pour étendre ou retirer un IEport.

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_SET_ACCESS

GET_CHANGER_PARAMETERS

IOCTL_CHANGER_SET_ACCESS