IOCTL_AVC_BUS_RESET IOCTL (avc.h)
Le code de contrôle d’E/S IOCTL_AVC_BUS_RESET permet à l’appelant d’effectuer les requêtes de contrôle IOCTL_AVC_UPDATE_VIRTUAL_SUBUNIT_INFO et IOCTL_AVC_REMOVE_VIRTUAL_SUBUNIT_INFO précédentes qui n’utilisaient pas l’indicateur de AVC_SUBUNIT_ADDR_TRIGGERBUSRESET. 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). Cette requête ne nécessite aucun paramètre supplémentaire. Par conséquent, les mémoires tampons d’entrée et de sortie doivent être définies sur NULL.
Cette requête entraîne avc.sys invalider ses relations d’appareil, ce qui entraîne le gestionnaire PnP demandant une liste mise à jour d’objets d’appareil enfant (sous-unités virtuelles). S’il n’existe aucun objet d’appareil enfant nouveau ou supprimé, aucune action n’est effectuée. S’il existe des objets de périphérique enfant 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 démarrage ou à la suppression.
Code principal
Bloc d’état
Irp->IoStatus.Status est défini sur STATUS_SUCCESS si la demande réussit.
Sinon, état à la condition d’erreur appropriée en tant que code NTSTATUS.
Pour plus d’informations, consultez valeurs NTSTATUS.
Remarques
Doit être appelé à IRQL = PASSIVE_LEVEL
Exigences
Exigence | Valeur |
---|---|
d’en-tête | avc.h |