Настройка и запуск сеанса SystemTraceProvider

SystemTraceProvider — это поставщик ядра с предопределенными наборами событий ядра, поддерживаемыми в Windows 7, Windows Server 2008 R2 и более поздних версиях. В Windows 7 и Windows Server 2008 R2 systemTraceProvider можно использовать только для сеанса ведения журнала ядра NT.

В Windows 8, Windows Server 2012 и более поздних версиях SystemTraceProvider можно мультиплексировать до 8 сеансов ведения журнала. Первые два слота для сеансов ведения журнала зарезервированы для средства ведения журнала ядра NT и средства ведения журнала циклического контекста ядра.

Дополнительные сведения об использовании сеанса ведения журнала ядра NT в качестве поставщика трассировки см. в разделе "Настройка и запуск сеанса ведения журнала ядра NT".

В Windows 10 SDK сборки 20348 и более поздних версий SystemTraceProvider можно настроить с помощью отдельных поставщиков систем, которые можно контролировать с помощью EnableTraceEx2, как и стандартную трассировку событий для поставщиков событий Windows. Полный список системных поставщиков, ключевых слов и соответствующих устаревших флагов и групп см. в разделе "Поставщики систем"

Включение сеанса SystemTraceProvider

Чтобы включить SystemTraceProvider для запуска сеанса, отличного от средства ведения журнала ядра NT, выполните следующую команду:

tracelog -start MySession -f c:\Kernel1.etl -eflag PROC_THREAD+LOADER+CSWITCH

Чтобы программно включить SystemTraceProvider для запуска сеанса, отличного от средства ведения журнала ядра NT, выполните следующие действия.

  • Укажите имя частного логгера.

    #define PRIVATE_LOGGER_NAME L"Частный сеанс трассировки"

  • На контроллере задайте следующие члены структуры EVENT_TRACE_PROPERTIES .

    Для параметра LogFileMode установите значение EVENT_TRACE_SYSTEM_LOGGER_MODE.

    Установите LoggerName как закрытый логгер, вместо KERNEL_LOGGER_NAME.

    Убедитесь, что элемент Wnode.Guid структуры EVENT_TRACE_PROPERTIES не должен быть установлено в SystemTraceControlGuid. Необходимо назначить этому элементу новый GUID .

  • Для клиента установите элемент LoggerName структуры EVENT_TRACE_LOGFILE для этого приватного логгера.

Замечание

Если вы хотите, чтобы неадминистраторы или процессы без TCP-блока управления (TCB) могли запускать сеанс трассировки профилирования с помощью SystemTraceProvider от имени сторонних приложений, необходимо предоставить привилегии профилирования пользователя, а затем добавить этого пользователя как в GUID сеанса (созданный для сеанса ведения журнала), так и в GUID поставщика трассировки системы, чтобы активировать поставщика трассировки системы. Дополнительные сведения см. в функции EventAccessControl .

 

Настройка и запуск сеанса приватного логирования

Настройка и запуск сеанса AutoLogger

Настройка и запуск сеанса трассировки событий

Настройка и запуск сеанса ведения журнала ядра NT

системных поставщиков

Обновление сеанса трассировки событий