Partager via


Vue d’ensemble du suivi d’événements USB pour Windows

Cette rubrique fournit des informations aux développeurs de pilotes clients sur les fonctionnalités de suivi et de journalisation du bus série universel (USB). Ces informations sont fournies pour l’avantage de ceux qui développent et déboguent des périphériques USB. Il inclut des informations sur l’installation des outils, la création de fichiers de trace et l’analyse des événements dans un fichier de trace USB. La rubrique part du principe que vous avez une compréhension complète de l’écosystème USB et du matériel requis pour utiliser correctement les fonctionnalités de suivi et de journalisation USB.

Pour interpréter les traces d’événements, vous devez également comprendre les pilotes côté hôte USB Windows dans Windows, les spécifications USB officielles et les spécifications de la classe de périphérique USB.

À propos du suivi d’événements pour Windows

Le suivi d’événements pour Windows (ETW) est une installation de suivi à haut débit à usage général fournie par le système d’exploitation. Il utilise un mécanisme de mise en mémoire tampon et de journalisation implémenté dans le noyau pour fournir un mécanisme de suivi pour les événements déclenchés par les applications en mode utilisateur et les pilotes de périphérique en mode noyau. En outre, ETW offre la possibilité d’activer et de désactiver dynamiquement la journalisation, ce qui facilite l’exécution d’un suivi détaillé dans les environnements de production sans nécessiter de redémarrages ou de redémarrages d’application. Le mécanisme de journalisation utilise des tampons par processeur qui sont écrits sur le disque par un thread d'écriture asynchrone. Cette mise en mémoire tampon permet aux applications serveur à grande échelle d’écrire des événements avec une perturbation minimale.

ETW a été introduit dans Windows 2000. Depuis lors, différents composants de système d’exploitation et de serveur de base ont adopté etW pour instrumenter leurs activités. ETW est désormais l’une des technologies d’instrumentation clés sur les plateformes Windows. Un nombre croissant d’applications tierces utilisent ETW pour l’instrumentation, et certains tirent parti des événements que Windows fournit. ETW a également été extrait dans la technologie de suivi logiciel WPP (Windows Preprocessor), qui fournit un ensemble de macros faciles à utiliser pour le traçage des messages de style printf pour le débogage pendant le développement.

ETW a été considérablement mis à niveau pour Windows Vista et Windows 7. L’une des nouvelles fonctionnalités les plus importantes est le modèle de fournisseur d’événements unifié et les API. En bref, les nouvelles API unifiées combinent les traces de journalisation et l’écriture dans l’Observateur d’événements dans un mécanisme cohérent et facile à utiliser pour les fournisseurs d’événements. En même temps, plusieurs nouvelles fonctionnalités ont été ajoutées à ETW pour améliorer les expériences des développeurs et des utilisateurs finaux.

Pour plus d’informations sur ETW et WPP, consultez Suivi des événements et Suivi d’événements pour Windows (ETW).

Prise en charge USB de la journalisation ETW

USB est l’un des moyens les plus répandus de connecter une variété croissante d’appareils périphériques aux PC. Il existe une base très importante d’ordinateurs hôtes USB et de périphériques USB, ainsi que des fournisseurs de systèmes, des fournisseurs d’appareils et des utilisateurs finaux s’attendent à ce que les périphériques USB fonctionnent parfaitement au niveau du système et de l’appareil.

La grande base installée et la prolifération des périphériques USB ont découvert des problèmes de compatibilité entre la pile logicielle USB Windows, le contrôleur hôte USB et les périphériques USB. Ces problèmes de compatibilité provoquent des problèmes pour les clients tels que les échecs d’opération d’appareil, le blocage du système et les blocages du système.

Il a été difficile ou impossible d’examiner et de déboguer des problèmes de périphérique USB sans accès direct au système, et/ou des appareils, ou dans certains cas, un vidage sur incident du système. Même avec un accès complet au matériel et à un vidage sur incident, l’extraction des informations pertinentes a été une technique longue qui est connue uniquement par quelques développeurs de pilotes USB principaux. Vous pouvez déboguer des problèmes USB à l’aide d’analyseurs matériels ou logiciels, mais ils sont très coûteux et sont disponibles uniquement pour un petit pourcentage de professionnels.

Prise en charge d’ETW USB

ETW fournit un mécanisme de journalisation des événements que la pile de pilotes USB peut exploiter pour faciliter l’examen, le diagnostic et le débogage des problèmes liés à USB. La journalisation des événements ETW de pile de pilotes USB prend en charge la plupart ou toutes les fonctionnalités de débogage fournies par le mécanisme de journalisation ad hoc existant dans la pile de pilotes USB, sans aucune de ses limitations. Cela se traduit par une facilité de débogage des problèmes liés à l’USB, qui doivent fournir une pile de pilotes USB plus robuste à long terme.

Nous avons ajouté la journalisation ETW aux pilotes du contrôleur hôte USB et au pilote du hub USB. La couche de pilote du contrôleur hôte USB inclut le pilote de port du contrôleur hôte (usbport.sys) et les pilotes miniport (usbehci.sys, usbohci.sys et usbuhci.sys). La couche de pilote du hub USB se compose du pilote du hub USB (usbhub.sys).

  • Événements du hub USB

    Bien que la collecte d’événements USB soit activée, le fournisseur d’événements du hub USB signale l’ajout et la suppression de hubs USB, les événements récapitulatives de l’appareil de tous les hubs et l’état du port changent. Vous pouvez utiliser ces événements pour déterminer la cause racine de la plupart des échecs d’énumération d’appareils.

  • Événements de port USB

    Bien que la collecte d’événements USB soit activée, le fournisseur d’événements de port USB signale les E/S des pilotes clients, l’ouverture et la fermeture des points de terminaison de périphérique, ainsi que les transitions d’état miniport telles que le démarrage et l’arrêt miniport. Les E/S journalisées incluent des requêtes pour l’état des ports USB physiques. Les transitions d’état sur les ports USB physiques sont l’un des initiateurs clés de l’activité dans la pile de pilotes USB principale.

Windows fournit une pile de pilotes USB pour prendre en charge les périphériques USB 3.0. La pile de pilotes USB 3.0 fournie par Microsoft se compose de trois pilotes : Usbxhci.sys, Ucx01000.sys et Usbhub3.sys. Les trois pilotes fonctionnent ensemble pour ajouter la prise en charge native à Windows pour la plupart des contrôleurs hôtes USB 3.0. La nouvelle pile de pilotes prend en charge les appareils SuperSpeed, haute vitesse, pleine vitesse et basse vitesse. Grâce aux traces d’événements, la pile de pilotes USB 3.0 fournit une vue de l’activité affinée du contrôleur hôte et de tous les appareils connectés à celui-ci.

  • Événements USB Hub3

    Bien que la collecte d’événements USB soit activée, le fournisseur d’événements USB Hub3 signale l’ajout et la suppression de hubs USB, les événements récapitulatives de l’appareil de tous les hubs, les changements d’état du port et les états d’alimentation des périphériques USB et des hubs. Les modifications d’état des ports sont des transitions d’état sur les ports USB physiques et sont l’un des initiateurs clés de l’activité dans la pile de pilotes USB principale. Hub3 signale les étapes du processus d’énumération, qui pointent vers la cause racine de la plupart des échecs d’énumération d’appareil. Avec le mot clé StateMachine activé, Hub3 signale l’activité interne de l’ordinateur d’état pour les objets de périphérique logiciel, de hub et de port, qui fournissent une visibilité plus approfondie de la logique du pilote.

  • Événements USB UCX

    Bien que la collecte d’événements USB soit activée, le fournisseur d’événements USB UCX signale les E/S des pilotes clients et l’ouverture et la fermeture des points de terminaison et des flux de point de terminaison de périphérique. Avec le mot clé StateMachine activé, UCX signale l’activité interne de l’ordinateur d’état pour les objets de contrôleur hôte et de point de terminaison, qui fournissent une visibilité plus approfondie de la logique du pilote.

  • Événements USB xHCI

    Bien que la collecte d’événements USB soit activée, le fournisseur d’événements USB xHCI signale les propriétés des contrôleurs xHCI du système et les détails de bas niveau de l’opération xHCI. xHCI signale les demandes de commande envoyées et terminées par le matériel xHCI, y compris les codes d’achèvement spécifiques à xHCI.

Contenu de cette section

Sujet Description
Capture d’une trace d’événements USB avec Logman Cette rubrique fournit des informations sur l’utilisation de l’outil Logman pour capturer une trace d’événements ETW USB. Logman est un outil de suivi intégré à Windows. Vous pouvez utiliser Logman pour capturer des événements dans un fichier journal de suivi des événements.
Utilisation des GUID d’ID d’activité dans les traces ETW USB Cette rubrique fournit des informations sur les GUID d’ID d’activité, comment ajouter ces GUID dans les fournisseurs de trace d’événements et les afficher dans Netmon.
Traces ETW USB dans Netmon Vous pouvez afficher les traces d’événements ETW USB à l’aide de Microsoft Network Monitor, également appelée Netmon. Netmon n’analyse pas automatiquement la trace. Il nécessite des analyseurs ETW USB. Les analyseurs ETW USB sont des fichiers texte, écrits en langage NPL (Network Monitor Parser Language), qui décrivent la structure des traces d’événements USB ETW. Les analyseurs définissent également des colonnes et des filtres spécifiques à USB. Ces analyseurs rendent Netmon le meilleur outil pour l’analyse des traces ETW USB.
Utilisation de Xperf avec USB ETW Cette rubrique explique comment utiliser Xperf avec Netmon pour analyser les données de trace USB.
USB ETW et gestion de l’alimentation Cette rubrique fournit une brève vue d’ensemble de l’utilisation d’ETW pour examiner l’état de suspension sélectif USB et identifier les problèmes d’efficacité énergétique du système à l’aide de l’utilitaire Windows PowerCfg.