Поделиться через


Новые возможности трассировки событий

В этом разделе описываются новые функции, добавленные в трассировку событий для Windows в каждом выпуске.

Windows 10 версии 1709

Теперь ETW может отслеживать двоичные файлы для всех поставщиков, которые включены в сеанс. Отслеживание применяется ретроактивно для поставщиков, которые были включены в сеанс до вызова, а также для всех будущих поставщиков, которые включены в сеанс. Теперь вы можете запросить текущее максимально допустимое операционной системой количество системных логгеров. Дополнительные сведения см. в значениях TraceProviderBinaryTracking и TraceMaxLoggersQuery перечисления TRACE_INFO_CLASS, а также Получение дополнительных данных трассировки событий.

Средство трассировки ETW теперь может фильтровать события на основе их имени. Вы также можете определить, какие события стеки которых захватываются. Дополнительные сведения см. в значениях EVENT_FILTER_TYPE_EVENT_NAME, EVENT_FILTER_TYPE_STACKWALK_NAME и EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW структуры EVENT_FILTER_DESCRIPTOR, а также в связанных структурах EVENT_FILTER_EVENT_NAME и EVENT_FILTER_LEVEL_KW.

Windows 10

TraceLogging строится на ETW и предоставляет упрощенный способ инструментирования кода для разработчиков на нативных языках, .NET и WinRT. TraceLogging позволяет включать структурированные данные с событиями, коррелировать события и не требует отдельного XML-файла манифеста инструментирования.

Характеристики поставщика были добавлены как средство добавления дополнительных данных к отдельной регистрации поставщика. Их можно использовать для поставщиков traceLogging на основе манифеста или трассировки. В настоящее время она включает поддержку добавления имени поставщика и (или) группы поставщиков в регистрацию отдельного поставщика. Группы поставщиков — это новая функция, позволяющая управлять несколькими поставщиками ETW в совокупности через группу, к которой они принадлежат.

Периодическое состояние записи — это способ, позволяющий регулярно отправлять уведомления о состоянии записи поставщикам. Если это включено, уведомления будут отправляться только на регистрации поставщиков, которые ранее были активированы для текущего сеанса. Каждый поставщик может определить свой собственный ответ (если таковой имеется) на уведомление. Дополнительные сведения о реализации см. в TRACE_PERIODIC_CAPTURE_STATE_INFO.

Windows 8.1 и Windows Server 2012 R2

Следующие функции добавлены в трассировку событий в Windows 8.1 и Windows Server 2012 R2.

Функции, обеспечивающие поддержку использования данных полезной нагрузки событий, области действия и фильтров обхода стека, которые используются функцией EnableTraceEx2 и структурами ENABLE_TRACE_PARAMETERS и EVENT_FILTER_DESCRIPTOR для фильтрации по определённым условиям в сеансе записи журнала. Дополнительные сведения см. в следующем разделе:

Кроме того, ознакомьтесь с подробно измененной документацией по функции EnableTraceEx2 и структурам ENABLE_TRACE_PARAMETERS и EVENT_FILTER_DESCRIPTOR, которые используются этими функциями.

Структура, описывающая предикат фильтрации нагрузки событий, который определяет, как фильтровать по одному полю в сеансе трассировки, используемом функцией TdhCreatePayloadFilter, и новая структура, применяемая для фильтров идентификаторов событий и пошаговой трассировки стека. Дополнительные сведения см. в следующем разделе:

Функции, которые извлекают сведения о событиях, присутствующих в манифесте поставщика. Дополнительные сведения см. в следующем разделе:

Структура, которая определяет массив событий в манифесте поставщика, используемом новой функцией TdhEnumerateManifestProviderEvents. Дополнительные сведения см. в следующем разделе:

Windows 8 и Windows Server 2012

Следующие функции добавлены в трассировку событий в Windows 8 и Windows Server 2012.

Функции, которые выполняют операции с объектом регистрации, обеспечивают разбор полезной нагрузки события, предоставляют возможность просмотра поставщика трассировки, запрашивают параметры сеанса трассировки событий и обрабатывают файл трассировки повторной записи. Дополнительные сведения см. в следующем разделе:

Интерфейсы, которые предоставляют информацию перезаписывающему журналу о процессе трассировки и регистрации событий, доступ к данным определенного события и доступ к функциям перезаписывающего журнала, позволяющим манипулировать файлами журнала трассировки событий (ETL). Дополнительные сведения см. в следующем разделе:

Дополнительные перечисления, используемые новыми функциями и интерфейсами. Дополнительные сведения см. в следующем разделе:

Windows 7 и Windows Server 2008 R2

В этом выпуске добавлены следующие функции:

  • Возможность поставщиков определять фильтры в манифесте. В Windows Vista контроллеры могут передавать данные фильтра поставщику. Однако макет данных фильтра не определен в манифесте, поэтому поставщику придется использовать другие средства для предоставления определения фильтра контроллерам. В этом выпуске поставщики могут определить фильтр в манифесте (см. атрибуты атрибута ProviderType сложного типа). Затем контроллеры могут использовать функцию TdhEnumerateProviderFilters для определения определения фильтра. Поставщики, использующие фильтры, должны использовать функцию EventWriteEx для записи события.
  • Возможность использовать один буфер для сбора событий, созданных на нескольких процессорах. Использование одного буфера исключает появление событий вне порядка на компьютерах с несколькими процессорами. Дополнительные сведения см. в режиме EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING ведения журнала. По умолчанию ETW использует буферы для каждого процессора.
  • Возможность записи трассировки стека для событий. Чтобы включить трассировку стека для событий ядра, см. функцию TraceSetInformation. Чтобы включить трассировку стека для событий пользователя, см. флаг EVENT_ENABLE_PROPERTY_STACK_TRACE для члена EnableProperty из ENABLE_TRACE_PARAMETERS.
  • Возможность указывать режим ведения журнала EVENT_TRACE_BUFFERING_MODE или EVENT_TRACE_FILE_MODE_NEWFILE в сочетании с режимом EVENT_TRACE_PRIVATE_LOGGER_MODE (см. константы режимов ведения журнала).
  • Возможность синхронно включить поставщика. По умолчанию поставщики включены асинхронно. Чтобы включить синхронную синхронизацию поставщика, задайте параметр TimeoutEnableTraceEx2.
  • Возможность контроллера запрашивать у поставщика регистрацию его состояния. Дополнительные сведения см. в флаге EVENT_CONTROL_CODE_CAPTURE_STATE для параметра ControlCodeEnableTraceEx2.
  • Возможность для потребителей форматировать данные событий с помощью функции TdhFormatProperty.
  • Возможность декодировать манифестированные события на компьютерах, не содержащих поставщика. Дополнительные сведения см. в функции TdhLoadManifest.

В этом выпуске добавлены следующие функции:

В этом выпуске добавлены следующие структуры:

В этом выпуске добавлены следующие перечисления:

В этом выпуске добавлены следующие классы MOF: