Справочник по TraceLogging
В следующих разделах содержатся сведения об API TraceLogging C/C++.
Заметка
Если вы создаете события из кода C/C++ и события определяются во время компиляции, используйте API, описанные в этом разделе. В противном случае, если вы создаете события из кода .NET, используйте класс .NET EventSource. В противном случае, если вы используете среду выполнения Windows (WinRT), используйте LoggingChannel. В противном случае вы можете использовать поддерживаемый сообществом вариант, например TraceLoggingDynamic.
TraceLogging строится на трассировке событий для Windows (ETW) и проще использовать, чем трассировка событий на основе манифеста или WPP. TraceLogging позволяет создавать события, содержащие структурированные данные, поддерживает корреляцию событий с помощью действий ETW и не требует отдельного XML-файла манифеста инструментирования для декодирования.
TraceLoggingProvider.h — это рекомендуемый API для разработчиков C/C++ в пользовательском или режиме ядра. В следующих ссылках описывается API C/C++.
Обратите внимание, что значение WINVER (пользовательского режима) влияет на поведение TraceLoggingProvider.h:
- Если WINVER не задан до включения
<windows.h>
,<windows.h>
присвойте WINVER значение по умолчанию, соответствующее версии пакета SDK. - Если вы используете TraceLoggingProvider.h с WINVER, установленным для 0x0602 (Windows 8) или более поздней версии, программа не может работать в Windows Vista или Windows 7 (TraceLoggingProvider.h будет пытаться напрямую использовать EventSetInformation, которая не присутствует в версиях RTM Windows Vista или Windows 7).
- Если вы используете TraceLoggingProvider.h с WINVER, установленным для 0x0600 (Windows Vista) или 0x0601 (Windows 7), программа будет настроена для совместимости и будет работать над указанными версиями Windows (TraceLoggingProvider.h будет вызывать EventSetInformation через GetProcAddress при наличии).