Ich forsche Ereignis Tracing für Windows (ETW), um einem Benutzermodus-Windows-Client zu ermöglichen, Ablaufverfolgungsinformationen zu schreiben. Die vorliegende Dokumentation ist, um es leicht zu sagen, wahnsinnig unvollständig. Was wirklich helfen würde, ist ein einfaches C++ - Beispiel, das Tracing-Nachrichten mit ETW ausgibt. Existiert ein solches Beispiel? Gibt es andere ETW-Dokumentation, die Sie empfehlen können?Verwendung von ETW von einem C++ - Windows-Client
Antwort
Um eine Provider für ETW zu schreiben, haben Sie zwei Möglichkeiten, sie entweder als Manifest-basierten Provider (bevorzugt für Vista oder höher) oder einen klassischen Anbieter für Legacy-Unterstützung zu schreiben. Wenn manifest-based ist die Methode, die Sie gehen möchten, dann überprüfen Sie an example here. Alternativ haben Sie eine classic provider example here finden.
Ich nehme an, dass Sie einen Manifest-basierten Ansatz als besser verwenden möchten und bis zu 8 Sitzungen unterstützen können. Der erste Schritt für einen manifestbasierten Anbieter besteht darin, das Ereignis unter Verwendung von EventRegister zu registrieren und dann über die Funktion EventWrite oder EventWriteString dorthin zu schreiben.
Dieses Dokument von Microsoft ist ein guter Anfang here
- 1. ETW-Tracking von. NET, Benutzermodus und Treiber
- 2. Manifest-basierter ETW-Provider - Dekodierung von Dateispeicherorten
- 3. Abrufen von WPF-ETW-Ereignissen mit XPerf.exe
- 4. Verwendung von C++ in einem iOS CocoaPod
- 5. Ein Problem über Algorithmus von String, dp, Graph oder etw.
- 6. C# Verwendung von new []
- 7. Verwendung von in_addr in C#
- 8. Nested Verwendung von C# Objektinitialisierer
- 9. Verwendung (Logik) von: Operator C#
- 10. Verwendung von AppDomain in C#
- 11. C++ - unerwünschte Verwendung von Basismethode
- 12. Verwendung von C++ mit Eclipse
- 13. Verwendung von Pthread in C++
- 14. Verwendung von XGBOOST in C++
- 15. Objective-C Verwendung von Zeigern
- 16. Verwendung von "Klasse" in C#
- 17. Verwendung von Threads in C++
- 18. Verwendung von ZXing C# Port
- 19. C: Korrekte Verwendung von strtok_r
- 20. C#: Verwendung von CategoryAttribute.Appearance Eigenschaft
- 21. Verwendung von scanf() in C
- 22. C/C++ Verwendung von speziellen CPU-Funktionen
- 23. C++ const_cast Verwendung anstelle von C-Casts
- 24. Verwendung von cpp-netlib in einem C++ - Projekt unter Windows
- 25. Verwendung von externen Bibliotheken in einem C-Programm
- 26. wie Tabellenwert zu einem Textfeldwert unter Verwendung von C#
- 27. Verwendung von Go-Code in einem bestehenden C-Projekt
- 28. Verwendung von Zeiger zurückgegeben von C-Bibliothek in C++
- 29. unter Verwendung mehrerer Dateien von einem Eingang
- 30. Ärger ein ETW Provider Registrierung