Partager via


IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO IOCTL (avc.h)

Le code de contrôle d’E/S IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO contrôle l’énumération des sous-unités virtuelles. Il est disponible pour le mode utilisateur ainsi que pour les composants en mode noyau via le IRP_MJ_DEVICE_CONTROL dispatch. Pour la communication de pilote à pilote, il s’agit d’une METHOD_BUFFERED IOCTL. Définissez donc les champs IRP en conséquence (IrpStack-Parameters.DeviceIoControl.InputBufferLength> et Irp-AssociatedIrp.SystemBuffer>).

IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO est utilisé pour ajouter ou supprimer des ID de sous-unités d’un type unique. Les appels successifs avec une autre partie d’ID de l’adresse de sous-unité entraînent la modification du nombre d’ID énumérés. Notez que avc.sys ajoute ou supprime uniquement les ID les plus élevés. Il s’agit d’une limitation de la spécification AV/C, et non de l’implémentation du pilote.

Ce IOCTL utilise la structure AVC_SUBUNIT_ADDR_SPEC.

Code principal

IRP_MJ_DEVICE_CONTROL

Bloc d’état

En cas de réussite, le pilote de protocole AV/C définit Irp-IoStatus.Status>sur STATUS_SUCCESS.

Les autres valeurs de retour possibles sont les suivantes :

Valeur de retour Description
STATUS_INSUFFICIENT_RESOURCES Aucune mémoire tampon n’a été transmise ou les ressources disponibles sont insuffisantes pour effectuer une requête de Registre.
STATUS_INVALID_BUFFER_SIZE La mémoire tampon passée dans Irp->AssociatedIrp.SystemBuffer doit être au moins aussi grande que sizeof(AVC_SUBUNIT_ADDR_SPEC), qui inclut une adresse de sous-unité d’un octet, mais limitée à une adresse de sous-unité de 32 octets.
STATUS_INVALID_PARAMETER L’adresse de la sous-unité a été spécifiée incorrectement.
STATUS_ACCESS_DENIED L’utilisateur actuel dispose de privilèges d’accès au Registre insuffisants pour rendre la mise à jour permanente.

Remarques

Doit être appelé à l’adresse IRQL = PASSIVE_LEVEL.

Configuration requise

Condition requise Valeur
En-tête avc.h (inclure Avc.h)

Voir aussi

AVC_SUBUNIT_ADDR_SPEC

IOCTL_AVC_BUS_RESET

IOCTL_AVC_CLASS

IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO