IOCTL_INTERNAL_USB_RESET_PORT IOCTL (usbioctl.h)
La demande de contrôle d’E/S IOCTL_INTERNAL_USB_RESET_PORT est utilisée par un pilote pour réinitialiser le port de amont de l’appareil qu’il gère. Après une réinitialisation réussie, le pilote de bus sélectionne à nouveau la configuration et tous les autres paramètres d’interface que l’appareil avait avant la réinitialisation. Tous les handles de canal, les handles de configuration et les handles d’interface restent valides.
Les pilotes doivent annuler toutes les demandes d’E/S et attendre qu’elles se terminent avant de lancer cette opération.
Un pilote qui gère une interface individuelle sur un appareil composite ne peut pas réinitialiser l’interface sans réinitialiser l’ensemble du périphérique composite et toutes ses interfaces. Pour cette raison, les pilotes qui gèrent les interfaces doivent tenter d’autres types de récupération d’erreur, tels que la réinitialisation des canaux (_URB_PIPE_REQUEST), avant de réinitialiser l’interface.
Ce IOCTL doit être envoyé à un IRQL de PASSIVE_LEVEL.
IOCTL_INTERNAL_USB_RESET_PORT est une demande de contrôle d’E/S en mode noyau. Cette requête cible l’AOP du hub USB.
Code principal
IRP_MJ_INTERNAL_DEVICE_CONTROL
Mémoire tampon d'entrée
Aucun.
Longueur de la mémoire tampon d’entrée
Aucun.
Mémoire tampon de sortie
Aucun.
Longueur de la mémoire tampon de sortie
Aucun.
Bloc d’état
Le pilote de bus ou de port définit Irp-IoStatus.Status> sur STATUS_SUCCESS ou le status d’erreur approprié.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | usbioctl.h (include Usbioctl.h) |