Share via


Übersicht über die USB-Ereignisablaufverfolgung für Windows

Dieses Thema enthält Informationen für Clienttreiberentwickler zu den Ablaufverfolgungs- und Protokollierungsfeatures für USB (Universal Serial Bus). Diese Informationen werden für diejenigen bereitgestellt, die USB-Geräte entwickeln und debuggen. Sie enthält Informationen zum Installieren der Tools, zum Erstellen von Ablaufverfolgungsdateien und zum Analysieren der Ereignisse in einer USB-Ablaufverfolgungsdatei. In diesem Thema wird vorausgesetzt, dass Sie über ein umfassendes Verständnis des USB-Ökosystems und der Hardware verfügen, die für die erfolgreiche Verwendung der USB-Ablaufverfolgungs- und -Protokollierungsfeatures erforderlich sind.

Um die Ereignisablaufverfolgungen zu interpretieren, müssen Sie auch die hostseitigen Windows-USB-Treiber in Windows, die offiziellen USB-Spezifikationen und die USB-Geräteklassenspezifikationen kennen.

Informationen zur Ereignisablaufverfolgung für Windows

Die Ereignisablaufverfolgung für Windows (ETW) ist eine allgemeine Funktion zur Hochgeschwindigkeitsablaufverfolgung, die vom Betriebssystem bereitgestellt wird. Es verwendet einen Puffer- und Protokollierungsmechanismus, der im Kernel implementiert ist, um einen Ablaufverfolgungsmechanismus für Ereignisse bereitzustellen, die sowohl von Benutzermodusanwendungen als auch von Kernelmodusgerätetreibern ausgelöst werden. Darüber hinaus bietet ETW die Möglichkeit, die Protokollierung dynamisch zu aktivieren und zu deaktivieren, was die Durchführung einer detaillierten Ablaufverfolgung in Produktionsumgebungen vereinfacht, ohne dass Neustarts oder Anwendungsneustarts erforderlich sind. Der Protokollierungsmechanismus verwendet Prozessorpuffer, die von einem asynchronen Writerthread auf den Datenträger geschrieben werden. Diese Pufferung ermöglicht groß angelegten Serveranwendungen das Schreiben von Ereignissen mit minimaler Störung.

ETW wurde in Windows 2000 eingeführt. Seitdem haben verschiedene Kernbetriebssystem- und Serverkomponenten ETW eingeführt, um ihre Aktivitäten zu instrumentieren. ETW ist jetzt eine der wichtigsten Instrumentierungstechnologien auf Windows-Plattformen. Immer mehr Anwendungen von Drittanbietern verwenden ETW für die Instrumentierung, und einige nutzen die Von Windows bereitgestellten Ereignisse. ETW wurde auch in die Windows-Präprozessor-Softwareablaufverfolgungstechnologie (WPP) abstrahiert, die eine Reihe von benutzerfreundlichen Makros zum Nachverfolgen von Nachrichten im Printf-Stil für das Debuggen während der Entwicklung bereitstellt.

ETW wurde für Windows Vista und Windows 7 erheblich aktualisiert. Eines der wichtigsten neuen Features sind das einheitliche Ereignisanbietermodell und die APIs. Kurz gesagt, die neuen einheitlichen APIs kombinieren Protokollierungsablaufverfolgungen und Schreiben in die Ereignisanzeige in einem konsistenten, einfach zu verwendenden Mechanismus für Ereignisanbieter. Gleichzeitig wurden etw mehrere neue Features hinzugefügt, um die Entwickler- und Endbenutzererfahrung zu verbessern.

Weitere Informationen zu ETW und WPP finden Sie unter Ereignisablaufverfolgung und Ereignisablaufverfolgung für Windows (ETW).

USB-Unterstützung für die ETW-Protokollierung

USB ist eines der häufigsten Mittel zum Verbinden einer immer größeren Vielfalt von Peripheriegeräten an PCs. Es gibt eine sehr große installierte Basis von USB-Host-PCs und USB-Peripheriegeräten, und Systemanbieter, Gerätehersteller und Endbenutzer erwarten und fordern, dass USB-Geräte auf System- und Geräteebene einwandfrei funktionieren.

Die große installierte Basis und die Verbreitung von USB-Geräten haben Kompatibilitätsprobleme zwischen dem Windows-USB-Softwarestapel, dem USB-Hostcontroller und USB-Geräten aufgedeckt. Diese Kompatibilitätsprobleme führen für Kunden zu Problemen wie Gerätebetriebsfehlern, Systemausfällen und Systemabstürzen.

Es war schwierig oder unmöglich, USB-Geräteprobleme ohne direkten Zugriff auf das System und/oder Geräte oder in einigen Fällen ein Systemabsturzabbild zu untersuchen und zu debuggen. Selbst bei vollem Zugriff auf die Hardware und einem Absturzdump ist das Extrahieren der relevanten Informationen eine zeitintensive Technik, die nur wenigen Usb-Kerntreiberentwicklern bekannt ist. Sie können USB-Probleme mithilfe von Hardware- oder Softwareanalysatoren debuggen, aber sie sind sehr teuer und stehen nur einem kleinen Prozentsatz von Fachleuten zur Verfügung.

USB ETW-Unterstützung in Windows 7

In Windows 7 bietet ETW einen Mechanismus zur Ereignisprotokollierung, den der USB-Treiberstapel nutzen kann, um USB-bezogene Probleme zu untersuchen, zu diagnostizieren und zu debuggen. Die ETW-Ereignisprotokollierung des USB-Treiberstapels unterstützt die meisten oder alle Debugfunktionen, die vom vorhandenen Ad-hoc-Protokollierungsmechanismus im USB-Treiberstapel bereitgestellt werden, ohne dass einschränkungen bestehen. Dies führt zu einer vereinfachung des Debuggens von USB-bezogenen Problemen, die langfristig einen robusteren USB-Treiberstapel bieten sollten.

Wir haben die ETW-Protokollierung den USB-Hostcontrollertreibern und dem USB-Hubtreiber in Windows 7 hinzugefügt. Die USB-Hostcontrollertreiberebene umfasst den Hostcontrollerporttreiber (usbport.sys) und die Miniporttreiber (usbehci.sys, usbohci.sys und usbuhci.sys). Die USB-Hubtreiberschicht besteht aus dem USB-Hubtreiber (usbhub.sys). Die ETW-Ereignisanbieter für USB-Treiber sind in allen Editionen und SKUs von Windows 7 enthalten.

  • USB Hub-Ereignisse

    Während die USB-Ereignissammlung aktiviert ist, meldet der USB-Hub-Ereignisanbieter das Hinzufügen und Entfernen von USB-Hubs, die Gerätezusammenfassungsereignisse aller Hubs und port status Änderungen. Sie können diese Ereignisse verwenden, um die Grundursache der meisten Geräteaufzählungsfehler zu ermitteln.

  • USB-Portereignisse

    Während die USB-Ereignissammlung aktiviert ist, meldet der USB-Portereignisanbieter E/A von Clienttreibern, Das Öffnen und Schließen von Geräteendpunkten und Miniportzustandsübergänge wie Miniportstart und -beenden. Protokollierte E/A-Vorgänge umfassen Anforderungen für den Zustand physischer USB-Ports. Zustandsübergänge an physischen USB-Ports sind einer der wichtigsten Initiatoren der Aktivität im KERN-USB-Treiberstapel.

USB ETW-Unterstützung in Windows 8

Windows 8 bietet einen USB-Treiberstapel zur Unterstützung von USB 3.0-Geräten. Der von Microsoft bereitgestellte USB 3.0-Treiberstapel besteht aus drei Treibern: Usbxhci.sys, Ucx01000.sys und Usbhub3.sys. Alle drei Treiber arbeiten zusammen, um Windows native Unterstützung für die meisten USB 3.0-Hostcontroller hinzuzufügen. Der neue Treiberstapel unterstützt SuperSpeed-, Hochgeschwindigkeits-, Vollgeschwindigkeits- und Low-Speed-Geräte. Der USB 2.0-Treiberstapel wird auf Windows 8 unterstützt. Durch Ereignisablaufverfolgungen bietet der USB 3.0-Treiberstapel einen Einblick in die fein abgestufte Aktivität des Hostcontrollers und aller damit verbundenen Geräte.

  • USB Hub3-Ereignisse

    Während die USB-Ereignissammlung aktiviert ist, meldet der USB Hub3-Ereignisanbieter das Hinzufügen und Entfernen von USB-Hubs, die Gerätezusammenfassungsereignisse aller Hubs, Port- status Änderungen sowie den Energiestatus von USB-Geräten und -Hubs. Port status Änderungen sind Zustandsübergänge an physischen USB-Anschlüssen und einer der wichtigsten Initiatoren der Aktivität im Kern-USB-Treiberstapel. Hub3 meldet die Phasen des Enumerationsprozesses, die auf die Ursache der meisten Geräteaufzählungsfehler verweisen. Wenn die StateMachine-Schlüsselwort (keyword) aktiviert ist, meldet Hub3 die aktivität des internen Zustandscomputers für Softwaregeräte-, Hub- und Portobjekte, die einen tieferen Einblick in die Logik des Treibers bieten.

  • USB UCX-Ereignisse

    Während die USB-Ereignissammlung aktiviert ist, meldet der USB UCX-Ereignisanbieter E/A von Clienttreibern sowie das Öffnen und Schließen von Geräteendpunkten und Endpunktdatenströmen. Wenn die StateMachine-Schlüsselwort (keyword) aktiviert ist, meldet UCX interne Zustandscomputeraktivität für Hostcontroller- und Endpunktobjekte, die einen tieferen Einblick in die Logik des Treibers bieten.

  • USB xHCI-Ereignisse

    Während die USB-Ereignissammlung aktiviert ist, meldet der USB-xHCI-Ereignisanbieter die Eigenschaften der xHCI-Controller des Systems sowie allgemeine Details zum xHCI-Betrieb. xHCI meldet Befehlsanforderungen, die an die xHCI-Hardware gesendet und abgeschlossen werden, einschließlich xHCI-spezifischer Vervollständigungscodes.

In diesem Abschnitt

Thema BESCHREIBUNG
Erfassen einer USB-Ereignisablaufverfolgung mit Logman Dieses Thema enthält Informationen zur Verwendung des Logman-Tools zum Erfassen einer USB ETW-Ereignisablaufverfolgung. Logman ist ein in Windows integriertes Ablaufverfolgungstool. Sie können Logman verwenden, um Ereignisse in einer Ereignisablaufverfolgungsprotokolldatei zu erfassen.
Verwenden von Aktivitäts-ID-GUIDs in USB ETW-Ablaufverfolgungen Dieses Thema enthält Informationen zu Aktivitäts-ID-GUIDs, zum Hinzufügen dieser GUIDs in den Ereignisablaufverfolgungsanbietern und deren Anzeigen in Netmon.
USB ETW-Ablaufverfolgungen in Netmon Sie können USB ETW-Ereignisablaufverfolgungen mithilfe von Microsoft Network Monitor anzeigen, der auch als Netmon bezeichnet wird. Netmon analysiert die Ablaufverfolgung nicht automatisch. Hierfür sind USB-ETW-Parser erforderlich. USB ETW-Parser sind Textdateien, die in Network Monitor Parser Language (NPL) geschrieben sind und die die Struktur von USB ETW-Ereignisablaufverfolgungen beschreiben. Die Parser definieren auch USB-spezifische Spalten und Filter. Diese Parser machen Netmon zum besten Tool zum Analysieren von USB ETW-Ablaufverfolgungen.
Verwenden von Xperf mit USB ETW In diesem Thema wird beschrieben, wie Sie Xperf mit Netmon verwenden, um USB-Ablaufverfolgungsdaten zu analysieren.
USB ETW und Energieverwaltung Dieses Thema bietet eine kurze Übersicht über die Verwendung von ETW zum Untersuchen des selektiven USB-Aussetzungszustands und zur Identifizierung von Systemenergieeffizienzproblemen mithilfe des Windows PowerCfg-Hilfsprogramms.

Verwenden von USB ETW
USB-Ereignisablaufverfolgung für Windows