Udostępnij za pośrednictwem


Dokumentacja rejestrowania śledzenia

Poniższe tematy zawierają informacje o interfejsie API rejestrowania śledzenia języka C/C++.

Nuta

Jeśli generujesz zdarzenia z kodu C/C++, a zdarzenia są definiowane w czasie kompilacji, użyj interfejsów API opisanych w tej sekcji. W przeciwnym razie, jeśli generujesz zdarzenia z kodu platformy .NET, użyj klasy EventSource platformy .NET. W przeciwnym razie, jeśli używasz środowiska uruchomieniowego systemu Windows (WinRT), użyj LoggingChannel. W przeciwnym razie możesz użyć opcji obsługiwanej przez społeczność, takiej jak TraceLoggingDynamic.

Funkcja TraceLogging opiera się na śledzeniu zdarzeń dla systemu Windows (ETW) i jest łatwiejsza w użyciu niż oparte na manifeście ETW lub WPP. Funkcja TraceLogging umożliwia generowanie zdarzeń zawierających dane ustrukturyzowane, obsługuje korelację zdarzeń przy użyciu działań ETW i nie wymaga oddzielnego pliku XML manifestu instrumentacji na potrzeby dekodowania.

TraceLoggingProvider.h jest zalecanym interfejsem API dla deweloperów języka C/C++ w trybie użytkownika lub jądra. Poniższe linki opisują interfejs API języka C/C++.

Należy pamiętać, że wartość WINVER (tryb użytkownika) wpłynie na sposób działania TraceLoggingProvider.h:

  • Jeśli usługa WINVER nie jest ustawiona przed dołączeniem <windows.h>, <windows.h> ustawi winVER wartość domyślną odpowiadającą wersji zestawu SDK.
  • Jeśli używasz elementu TraceLoggingProvider.h z systemem WINVER ustawionym na 0x0602 (Windows 8) lub nowszym, program może nie działać w systemie Windows Vista lub Windows 7 (TraceLoggingProvider.h spróbuje bezpośrednio użyć elementu EventSetInformation, który nie był obecny w wersji RTM systemu Windows Vista lub Windows 7).
  • Jeśli używasz metody TraceLoggingProvider.h z systemem WINVER ustawioną na 0x0600 (Windows Vista) lub 0x0601 (Windows 7), program zostanie skonfigurowany pod kątem zgodności i będzie działać w określonych wersjach systemu Windows (TraceLoggingProvider.h wywoła element EventSetInformation za pośrednictwem polecenia GetProcAddress, jeśli jest dostępna).