Bevor wir mit Troubleshooting Schritten anfangen können, ist es wichtig zu verstehen, wie überhaupt Tools wie der Windows Performance Analyzer seine Informationen erhält. Deswegen werde ich mich in diesen Blog Eintrag mit dem Thema Event Tracing for Windows, oder kurz ETW beschäftigen.

ETW gibt dem Betriebssystem seit Windows 2000 die Möglichkeit einheitliche Fehlermeldungen oder Informationen vom User aber auch Kernel Modus in einer holistische Übersicht anzuzeigen. Alle OEM's haben die Möglichkeit, Ihre eigene Software, Treiber oder Services auch in ETW einzubinden, um von dem einheitlichen Fehler Analyse zu profitieren.

Die ETW Architektur besteht aus 3 Hauptkomponenten: Controller, Provider und Consumer, sowie einer Tracing Session. Wie die einzelnen Komponenten funktionieren, und wie diese miteinander kommunizieren erkläre ich weiter unten:

 

  • Controller: Ein Controller ist ein Tool welches definiert welcher Provider aktiviert wird, wo das Ergebnis gespeichert wird, und welche Werte genutzt werden sollen. Diese Informationen werden verwendet, um eine Tracing Session innerhalb von ETW zu starten.

 

  • Provider:  Nachdem eine Tracing Session durch den Controller erstellt wurde, aktiviert diese die vom Controller gewünschten Provider. Durch die Aktivierung beginnt die Abspeicherung der einzelnen Ereignisse in der Tracing Session. Es gibt derzeit zwei Arten von Providern; Classic Provider und Manifest-Based Provider. Wie diese Provider sich unterscheiden erfährt Ihr untenstehend:
    1. Classic Provider:
      1. Nutzt RegisterTraceGuids und TraceEvents Funktion um sich zu registrieren und Events zu schreiben
      2. Verwendet MOF Klassen um Events zu definieren und um den Consumer zu erklären wie er die Events verwenden kann
      3. 1 Tracing Session gleichzeitig
    2. Manifest-based Provider:
      1. Verwendet EventRegister und EventWrite um sich zu registrieren und Events zu schreiben
      2. Verwendet ein Manifest um Events zu definieren und um den Consumer zu erklären wie er die Events verwenden kann
      3. Bis zu 8 gleichzeitige Trace Sessions

 

  • Consumer: Der Consumer ist dafür zuständig die Daten die vom Provider zurück kommen zu analysieren.

 

Aktive Event Tracing Sessions kann man über den Performance Monitor einsehen:

 

Um zu überprüfen welcher Provider für welches Programm zuständig ist, kann man die untenstehenden Schritte, über einen Command-Prompt durchführen. In diesem Beispiel werde ich euch zeigen, wie man alle relevanten Internet Explorer Provider auflisten könnt:

  1. Starten Sie den Internet Explorer
  2. Als nächstes überprüfen Sie über den Task Manager welche PID ID der Internet Explorer hat
  3. Starten Sie jetzt einen Command-Prompt
  4. Um alle User Mode ETW Provider für den Internet Explorer anzeigen zu lassen, geben Sie den folgenden Befehl ein: Logman query providers –pid <die in Schritt 2 ermittelte PID ID>

Ich hoffe ich konnte mit diesem Blog Eintrag einen kurzen Einblick über Event Tracing for Windows verschaffen.