Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Abschnitt wird beschrieben, wie Sie den Windows-Softwareablaufverfolgungsvorprozessor (WPP) verwenden, um den Vorgang einer Softwarekomponente (Ablaufverfolgungsanbieter) nachzuverfolgen. Ein Trace Provider kann einer der folgenden sein:
Ein Kernel-Modus-Treiber.
Ein Benutzermodustreiber, eine Anwendung oder eine Dynamic Link Library (DLL).
WPP-Softwareablaufverfolgung ergänzt und verbessert die WMI-Ereignisablaufverfolgung , indem Möglichkeiten hinzugefügt werden, die Ablaufverfolgung des Ablaufverfolgungsanbieters zu vereinfachen. Es ist ein effizienter Mechanismus für den Ablaufverfolgungsanbieter zum Protokollieren von Binären Nachrichten in Echtzeit. Die protokollierten Nachrichten können anschließend in eine menschenlesbare Ablaufverfolgung des Betriebes des Ablaufverfolgungsanbieters konvertiert werden.
Wann sollten Sie die WPP-Softwareablaufverfolgung verwenden? |
---|
Die WPP-Softwareablaufverfolgung ist in erster Linie für das Debuggen von Code während der Entwicklung vorgesehen. Wenn Sie Ereignisse veröffentlichen möchten, die von Anwendungen genutzt werden können, die an strukturierten ETW-Ereignissen interessiert sind, verwenden Sie zusätzlich zur Ablaufverfolgung während der Entwicklung Folgendes:
|
Das Protokollieren von Nachrichten mit der WPP-Softwareablaufverfolgung ähnelt der Verwendung von Windows-Ereignisprotokollierungsdiensten. Der Treiber protokolliert eine Nachrichten-ID und unformatierte Binärdaten in einer Protokolldatei. Anschließend wandelt ein Postprozessor die Informationen in der Protokolldatei in eine lesbare Form um. Die WPP-Softwareablaufverfolgung unterstützt jedoch Nachrichtenformate, die fähiger und flexibler sind als die von den Ereignisprotokollierungsdiensten unterstützten. Beispielsweise bietet die WPP-Softwareablaufverfolgung integrierte Unterstützung für IP-Adressen, GUIDs, System-IDs, Zeitstempel und andere nützliche Datentypen. Darüber hinaus können Benutzer benutzerdefinierte Datentypen hinzufügen, die für ihre Anwendung relevant sind.
Eine Übersicht über den WPP-Softwareablaufverfolgungsprozess
Der grundlegende Prozess zum Hinzufügen der WPP-Softwareablaufverfolgung zu einem Treiber oder einer Anwendung umfasst die folgenden Schritte. Wenn Sie eine der visual Studio-Vorlagen verwenden, die im WDK zum Erstellen eines WDF-Treibers bereitgestellt werden, ist ein Großteil der Arbeit für Sie erledigt.
Definieren Sie eine Steuerelement-GUID, die den Treiber oder die Anwendung eindeutig als Ablaufverfolgungsanbieter identifiziert. Der Anbieter gibt diese GUID in der Definition des WPP_CONTROL_GUIDS-Makros und in einer zugehörigen Steuerelementdatei an, die von Tracelog oder einem anderen Ablaufverfolgungs-Controller verwendet wird.
Fügen Sie die erforderlichen WPP-bezogenen C-Präprozessordirektiven und WPP-Makroaufrufe zu den Quelldateien des Anbieters hinzu, wie unter Hinzufügen der WPP-Softwareablaufverfolgung zu einem Windows-Treiber und in der WPP-Softwareablaufverfolgungsreferenz beschrieben.
Ändern Sie das Visual Studio-Projekt, um den WPP-Präprozessor auszuführen und den Treiber zu erstellen, wie in Schritt 6 des Hinzufügens der WPP-Softwareablaufverfolgung zu einem Windows-Treiber beschrieben. Weitere Buildzeitoptionen finden Sie im WPP-Präprozessor .
Installieren Sie den Treiber oder die Komponente. Starten Sie eine Ablaufverfolgungssitzung, und zeichnen Sie die Ablaufverfolgungsmeldungen auf. Verwenden Sie die Tools für die Softwareablaufverfolgung, z. B. TraceView, Tracelog, Tracefmt und Tracepdb , um Ablaufverfolgungssitzungen zu konfigurieren, zu starten und zu beenden sowie Ablaufverfolgungsmeldungen anzuzeigen und zu filtern. Diese Tools sind im Windows Driver Kit (WDK) enthalten.
In diesem Abschnitt
- Hinzufügen von WPP-Software-Tracing zu einem Windows-Treiber
- Inflight Trace Recorder zum Protokollieren von Ereignisabläufen
- Verwendung des WPP-Software-Tracings in einem Trace-Provider
- Hinzufügen von WPP-Makros zu einem Trace-Provider
- WPP-Vorprozessor
- Ablaufverfolgung und Diagnosefähigkeit für WDF-Treiber
Anmerkung Die Ereignisablaufverfolgung für Windows (ETW) und WPP unterstützen die meisten Arten von Kernelmodus- und Benutzermodustreibern. ETW und WPP verwenden jedoch Typen, die für bestimmte Typen von Treibern nicht verfügbar sind, z. B. Miniporttreiber. Um zu ermitteln, ob ein bestimmter Treibertyp unterstützt wird, fügen Sie dem Treiber grundlegende WPP-Makros hinzu, z. B. WPP_INIT_TRACING und WPP_CLEANUP. Wenn der Code nicht kompiliert wird, da die verwendeten Typen nicht definiert sind, kann ETW und WPP den Treibertyp nicht unterstützen.
Weitere Informationen zu ETW finden Sie unter Ereignisablaufverfolgung für Windows.
Anmerkung WPP-Trace-Provider können jeweils nur von einer Trace-Sitzung aktiviert werden. Weitere Informationen finden Sie unter WPP-Anbieter .
Informationen zu den WMI-Bibliotheksunterstützungsroutinen, die die WPP-Softwareablaufverfolgung unterstützen, finden Sie unter: