Partager via


IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO IOCTL (avc.h)

Le code de contrôle d’E/S IOCTL_AVC_REMOVE_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 la répartition IRP_MJ_DEVICE_CONTROL. Pour la communication de pilote à pilote, il s’agit d’un METHOD_BUFFERED IOCTL. Définissez donc les champs IRP en conséquence (IrpStack-Parameters.DeviceIoControl.InputBufferLength> et Irp-AssociatedIrp.SystemBuffer>).

IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO est utilisé pour supprimer tous les ID de sous-unités d’un type unique. La partie ID de l’adresse de sous-unité est ignorée.

Cet 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é passée 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é sur 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 persistante.

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_UPDATE_VIRTUAL_SUBUNIT_INFO