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 par le biais de la répartition IRP_MJ_DEVICE_CONTROL. 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é 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 des ressources insuffisantes disponibles pour effectuer une requête de Registre.
STATUS_INVALID_BUFFER_SIZE La mémoire tampon transmise 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 sous-unité a été spécifiée de manière incorrecte.
STATUS_ACCESS_DENIED L’utilisateur actuel dispose de privilèges d’accès au Registre insuffisants pour rendre la mise à jour persistante.

Remarques

Doit être appelé à IRQL = PASSIVE_LEVEL.

Exigences

Exigence Valeur
d’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