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)

Voir aussi

_URB_PIPE_REQUEST