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

Dieses Thema enthält Informationen für Clienttreiberentwickler zu den Ablaufverfolgungs- und Protokollierungsfeatures für universal Serial Bus (USB). 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 davon ausgegangen, dass Sie ein umfassendes Verständnis des USB-Ökosystems und der Hardware haben, das für die erfolgreiche Verwendung der USB-Ablaufverfolgungs- und Protokollierungsfunktionen erforderlich ist.

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 verstehen.

Informationen zur Ereignisablaufverfolgung für Windows

Die Ereignisablaufverfolgung für Windows (ETW) ist eine allgemeine, hochgeschwindigkeitsgesteuerte Ablaufverfolgungseinrichtung, 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, wodurch die detaillierte Ablaufverfolgung in Produktionsumgebungen ohne Neustarts oder Anwendungsneustarts einfach ausgeführt werden kann. Der Protokollierungsmechanismus verwendet prozessorspezifische Puffer, die durch einen asynchronen Schreibthread auf den Datenträger geschrieben werden. Diese Pufferung ermöglicht es groß angelegten Serveranwendungen, Ereignisse mit minimaler Störung zu schreiben.

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. Eine wachsende Anzahl von Drittanbieteranwendungen verwendet ETW für die Instrumentierung, und einige nutzen die von Windows bereitgestellten Ereignisse. ETW wurde auch in die WPP-Softwareablaufverfolgungstechnologie (Windows Preprocessor) abstrahiert, die eine Reihe von einfach zu verwendenden Makros für die Ablaufverfolgung von Printf-Formatnachrichten 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 ist das einheitliche Ereignisanbietermodell und apIs. Kurz gesagt, die neuen einheitlichen APIs kombinieren Protokollierungsablaufverfolgungen und Schreiben in die Ereignisanzeige in einen konsistenten, einfach zu verwendenden Mechanismus für Ereignisanbieter. Gleichzeitig wurden dem ETW mehrere neue Features hinzugefügt, um die Entwickler- und Endbenutzererfahrungen zu verbessern.

Weitere Informationen zu ETW und WPP finden Sie unter Ereignisablaufverfolgung und Ereignisablaufverfolgung für Windows (ETW).For more information about ETW, see Event Tracing and Event Tracing for Windows (ETW).

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

USB ist eines der am häufigsten verwendeten Mittel, um eine immer größere Vielfalt von Peripheriegeräten mit PCs zu verbinden. Es gibt eine sehr große installierte Basis von USB-Host-PCs und USB-Peripheriegeräten und Systemanbietern, Geräteanbietern und Endbenutzern erwarten und verlangen, dass USB-Geräte auf System- und Geräteebene einwandfrei funktionieren.

Die große installierte Basis und Verbreitung von USB-Geräten hat Kompatibilitätsprobleme zwischen dem Windows-USB-Softwarestapel, dem USB-Hostcontroller und USB-Geräten aufgedeckt. Diese Kompatibilitätsprobleme verursachen Probleme für Kunden wie Gerätebetriebsfehler, Systemabstürzen 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 Absturzabbild war das Extrahieren der relevanten Informationen eine zeitintensive Technik, die nur von einigen Kern-USB-Treiberentwicklern 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

ETW bietet einen Mechanismus für die 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 ohne einschränkungen bereitgestellt werden. Dies führt zu einfacheren Debugging-USB-bezogenen Problemen, die langfristig einen robusteren USB-Treiberstapel bereitstellen sollten.

Wir haben die ETW-Protokollierung zu den USB-Hostcontrollertreibern und zum USB-Hubtreiber hinzugefügt. Die USB-Hostcontrollertreiberebene umfasst den Hostcontrollerporttreiber (usbport.sys) und die Miniporttreiber (usbehci.sys, usbohci.sys und usbuhci.sys). Die USB-Hubtreiberebene besteht aus dem USB-Hubtreiber (usbhub.sys).

  • 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 Portstatusänderungen. Sie können diese Ereignisse verwenden, um die Ursache für die meisten Geräteaufzählungsfehler zu ermitteln.

  • USB-Portereignisse

    Während die USB-Ereignissammlung aktiviert ist, meldet der USB-Portereignisanbieter E/A von Clienttreibern, Öffnen und Schließen von Geräteendpunkten sowie Miniportzustandsübergänge wie Miniport-Start und -Stopp. Die protokollierte E/A enthält Anforderungen für den Zustand der physischen USB-Anschlüsse. Zustandsübergänge auf physischen USB-Anschlüssen sind einer der wichtigsten Initiatoren der Aktivität im Kern-USB-Treiberstapel.

Windows 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-, High-Speed-, Full-Speed- und Low-Speed-Geräte. Durch Ereignisablaufverfolgungen bietet der USB 3.0-Treiberstapel einen Einblick in die feinkörnige Aktivität des Hostcontrollers und alle 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, Portstatusänderungen und Leistungszustände von USB-Geräten und Hubs. Portstatusänderungen sind Zustandsübergänge auf physischen USB-Anschlüssen und gehören zu den wichtigsten Initiatoren der Aktivität im Kern-USB-Treiberstapel. Hub3 meldet die Phasen des Enumerationsprozesses, die auf die Ursache für die meisten Geräteaufzählungsfehler verweisen. Mit aktivierter StateMachine-Schlüsselwort meldet Hub3 die interne Zustandsautomataktivität für Softwaregeräte-, Hub- und Portobjekte, die tiefere Einblicke 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 und dem Öffnen und Schließen von Geräteendpunkten und Endpunktdatenströmen. Mit aktivierter StateMachine-Schlüsselwort meldet UCX interne Zustandsautomatenaktivitäten für Hostcontroller- und Endpunktobjekte, die tiefere Einblicke 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 und details zu xHCI-Vorgängen auf niedriger Ebene. xHCI meldet Befehlsanforderungen, die von der xHCI-Hardware gesendet und abgeschlossen werden, einschließlich xHCI-spezifischer Vervollständigungscodes.

In diesem Abschnitt

Thema Beschreibung
So erfassen Sie eine 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 zum Anzeigen in Netmon.
USB ETW-Ablaufverfolgungen in Netmon Sie können USB ETW-Ereignisablaufverfolgungen mithilfe von Microsoft Network Monitor anzeigen, auch als Netmon bezeichnet. Netmon analysiert die Ablaufverfolgung nicht automatisch. Es erfordert USB-ETW-Parser. USB ETW-Parser sind Textdateien, die in network Monitor Parser Language (NPL) geschrieben wurden, die die Struktur von USB ETW-Ereignisablaufverfolgungen beschreiben. Die Parser definieren auch USB-spezifische Spalten und Filter. Diese Parser machen Netmon zum besten Tool für die Analyse von USB-ETW-Ablaufverfolgungen.
Verwenden von Xperf mit USB ETW In diesem Thema wird beschrieben, wie Sie Xperf mit Netmon zum Analysieren von USB-Ablaufverfolgungsdaten verwenden.
USB ETW und Energieverwaltung Dieses Thema enthält eine kurze Übersicht über die Verwendung von ETW zum Untersuchen des selektiven Anhaltezustands von USB und zur Identifizierung von Systemenergieeffizienzproblemen mithilfe des Windows PowerCfg-Dienstprogramms.