Настройка и запуск сеанса 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 Kernel Logger, выполните следующую команду:
tracelog -start MySession -f c:\Kernel1.etl -eflag PROC_THREAD+LOADER+CSWITCH
Чтобы программно включить SystemTraceProvider для запуска сеанса, отличного от nt Kernel Logger, выполните следующие действия.
Определите имя частного средства ведения журнала.
#define PRIVATE_LOGGER_NAME L "Некоторый закрытый сеанс трассировки"
На контроллере задайте следующие элементы структуры EVENT_TRACE_PROPERTIES .
Задайте для параметра LogFileModeзначение EVENT_TRACE_SYSTEM_LOGGER_MODE.
Вместо KERNEL_LOGGER_NAME задайте для loggerName значение Private Logger.
Убедитесь, что для элемента Wnode.Guid структуры EVENT_TRACE_PROPERTIES не задано значение SystemTraceControlGuid. Этому элементу необходимо назначить новый GUID .
В объекте-получателе задайте для элемента LoggerName структуры EVENT_TRACE_LOGFILE значение этого частного средства ведения журнала.
Примечание
Если вы хотите, чтобы неадминистратор или процесс, не относящийся к TCB, мог запускать сеанс трассировки профилирования с помощью SystemTraceProvider от имени сторонних приложений, необходимо предоставить привилегию профиля пользователя, а затем добавить этого пользователя в guid сеанса (созданный для сеанса средства ведения журнала) и guid поставщика трассировки системы, чтобы включить поставщик трассировки системы. Дополнительные сведения см. в разделе Функция EventAccessControl .
Связанные темы
Настройка и запуск сеанса частного средства ведения журнала
Настройка и запуск сеанса автозалога
Настройка и запуск сеанса трассировки событий
Настройка и запуск сеанса средства ведения журнала ядра NT
Обновление сеанса трассировки событий