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 USB (Universal Serial Bus). Ces informations sont fournies à 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 suppose que vous avez une compréhension complète de l’écosystème et du matériel USB nécessaires 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 fonctionnalité de suivi à grande vitesse à 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 à la fois 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’applications. Le mécanisme de journalisation utilise des mémoires tampons par processeur écrites sur le disque par un thread d’enregistreur asynchrone. Cette mise en mémoire tampon permet aux applications serveur à grande échelle d’écrire des événements avec un minimum de perturbations.

ETW a été introduit dans Windows 2000. Depuis lors, différents composants principaux du système d’exploitation et du serveur 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 certaines tirent parti des événements que Windows fournit. ETW a également été abstrait dans la technologie de suivi logiciel de préprocesseur Windows (WPP), qui fournit un ensemble de macros faciles à utiliser pour le suivi des messages de style printf à des fins de 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 significatives 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 le observateur d'événements dans un mécanisme cohérent et facile à utiliser pour les fournisseurs d’événements. Parallèlement, plusieurs nouvelles fonctionnalités ont été ajoutées à ETW pour améliorer l’expérience des développeurs et des utilisateurs finaux.

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

Prise en charge USB de la journalisation ETW

L’USB est l’un des moyens les plus répandus de connecter une variété toujours croissante de périphériques aux PC. Il existe une très grande base installée de PC hôtes USB et périphériques USB, et les fournisseurs de systèmes, les fournisseurs d’appareils et les 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 révélé 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 des échecs d’opération de l’appareil, des blocages système et des incidents système.

Il a été difficile ou impossible d’examiner et de déboguer les problèmes de périphérique USB sans accès direct au système et/ou aux 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 fastidieuse qui n’est connue que 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 ne sont disponibles que pour un petit pourcentage de professionnels.

Prise en charge d’USB ETW dans Windows 7

Dans Windows 7, 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 la pile de pilotes USB prend en charge la plupart ou la totalité des 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 à USB, ce qui devrait 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 dans Windows 7. La couche 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 pilote du hub USB se compose du pilote de hub USB (usbhub.sys). Les fournisseurs d’événements ETW du pilote USB sont inclus dans toutes les éditions et références SKU de Windows 7.

  • Événements du hub USB

    Bien que la collecte d’événements USB soit activée, le fournisseur d’événements de hub USB signale l’ajout et la suppression de hubs USB, le résumé des événements de tous les hubs et les modifications de port status. 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

    Alors que la collecte d’événements USB est 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 du miniport. Les E/S journalisées incluent des demandes 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 des pilotes USB principaux.

Prise en charge d’ETW USB dans Windows 8

Windows 8 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 travaillent ensemble pour ajouter la prise en charge native de Windows pour la plupart des contrôleurs hôtes USB 3.0. La nouvelle pile de pilotes prend en charge les appareils SuperSpeed, à grande vitesse, à pleine vitesse et à basse vitesse. La pile de pilotes USB 2.0 est prise en charge sur Windows 8. 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 qui y sont connectés.

  • Événements HUB3 USB

    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, le résumé des événements de tous les hubs, les changements de port status et les états d’alimentation des périphériques et des hubs USB. Les modifications de status de port sont des transitions d’état sur des ports USB physiques et sont l’un des principaux initiateurs de l’activité dans la pile de pilotes USB de base. Hub3 signale les étapes du processus d’énumération, qui pointent vers la cause racine de la plupart des échecs d’énumération d’appareils. Une fois la mot clé StateMachine activée, Hub3 signale l’activité interne de la machine à état pour les objets de périphérique logiciel, de hub et de port, qui offrent une visibilité plus approfondie de la logique du pilote.

  • Événements USB UCX

    Alors que la collecte d’événements USB est activée, le fournisseur d’événements USB UCX signale les E/S des pilotes clients, ainsi que l’ouverture et la fermeture des points de terminaison d’appareil et des flux de points de terminaison. Une fois la mot clé StateMachine activée, UCX signale l’activité de la machine à états interne pour les objets de contrôleur d’hôte et de point de terminaison, ce qui offre 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

Rubrique Description
Comment capturer une trace d’événement USB avec Logman Cette rubrique fournit des informations sur l’utilisation de l’outil Logman pour capturer une trace d’événement 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 trace d’é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 USB ETW à l’aide de Microsoft Network Monitor, également appelé 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 Analyseur 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 font de Netmon le meilleur outil pour analyser les 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élective USB et identifier les problèmes d’efficacité énergétique du système à l’aide de l’utilitaire Windows PowerCfg.

Utilisation d’USB ETW
Suivi d’événements USB pour Windows