Partager via


IOCTL_AVC_BUS_RESET IOCTL (avc.h)

Le code de contrôle E/S IOCTL_AVC_BUS_RESET permet à l’appelant d’effectuer toutes les demandes de contrôle IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO et IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO précédentes qui n’ont pas utilisé l’indicateur AVC_SUBUNIT_ADDR_TRIGGERBUSRESET. 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>). Cette demande ne nécessite pas de paramètres supplémentaires. Les mémoires tampons d’entrée et de sortie doivent donc être définies sur NULL.

Cette requête entraîne avc.sys d’invalider ses relations avec l’appareil, ce qui entraîne la demande du gestionnaire PnP pour une liste mise à jour des objets d’appareil enfants (sous-unités virtuelles). S’il n’y a pas d’objets d’appareil enfants nouveaux ou supprimés, aucune action n’est effectuée. S’il existe des objets d’appareil enfants nouveaux ou supprimés, leurs pilotes seront chargés ou déchargés, et une réinitialisation de bus 1394 sera déclenchée pour chaque PDO au fur et à mesure que chacun d’eux est démarré ou supprimé.

Code principal

IRP_MJ_DEVICE_CONTROL

Bloc d’état

Irp-IoStatus.Status> a la valeur STATUS_SUCCESS si la demande réussit.

Sinon, indiquez la condition d’erreur appropriée en tant que code NTSTATUS.

Pour plus d’informations, consultez Valeurs NTSTATUS.

Remarques

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

Configuration requise

Condition requise Valeur
En-tête avc.h

Voir aussi

AVC_SUBUNIT_ADDR_SPEC

IOCTL_AVC_CLASS

IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO

IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO