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
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 |