структура TRACE_PERIODIC_CAPTURE_STATE_INFO (evntrace.h)
Используется с TraceQueryInformation и TraceSetInformation для получения или задания сведений, связанных с периодическим состоянием отслеживания.
Синтаксис
typedef struct _TRACE_PERIODIC_CAPTURE_STATE_INFO {
ULONG CaptureStateFrequencyInSeconds;
USHORT ProviderCount;
USHORT Reserved;
} TRACE_PERIODIC_CAPTURE_STATE_INFO, *PTRACE_PERIODIC_CAPTURE_STATE_INFO;
Члены
CaptureStateFrequencyInSeconds
Частота отслеживания состояния в секундах.
ProviderCount
Количество поставщиков.
Reserved
Зарезервировано для последующего использования.
Комментарии
Периодическое состояние отслеживания — это способ, позволяющий регулярно отправлять уведомления о состоянии отслеживания поставщикам. Если этот параметр включен, уведомления будут отправляться только регистрациям поставщиков, которые ранее были включены в текущий сеанс. Каждый поставщик может определить свой собственный ответ (при наличии) на уведомление. Обратите внимание, что события, зарегистрированные поставщиком в ответ на уведомление, будут отправляться в каждый сеанс трассировки событий Windows, к которому включен поставщик, аналогично состоянию отслеживания, запрошенном вручную.
Чтобы использовать периодическое состояние отслеживания, выполните следующие действия.
- Выделите буфер типа TRACE_PERIODIC_CAPTURE_STATE_INFO. Размер буфера должен быть следующим: sizeof(TRACE_PERIODIC_CAPTURE_STATE_INFO) + (x * sizeof(GUID)), где x — количество поставщиков, которые вы хотите включить.
- Вызовите TraceQueryInformation с помощью TracePeriodicCaptureStateInfo для перечисления TRACE_INFO_CLASS. Передайте буфер и его размер в качестве параметров TraceInformation и InformationLengthtraceQueryInformation.
- Задайте для параметра CaptureStateFrequencyInSecondsиз TRACE_PERIODIC_CAPTURE_STATE_INFO минимальную частоту, поддерживаемую версией Windows. Это значение может измениться в будущем, поэтому не рекомендуется жесткое написание кода. Если частота ниже минимальной, вызов TraceSetInformation завершится ошибкой.
- Задайте в поле ProviderCountиз TRACE_PERIODIC_CAPTURE_STATE_INFO количество передаваемых GUID поставщика.
- Добавьте идентификаторы GUID каждого поставщика после окончания структуры TRACE_PERIODIC_CAPTURE_STATE_INFO . При этом используется дополнительное пространство, выделенное из (x * sizeof(GUID)) с первого шага.
- Вызовите TraceSetInformation с помощью TracePeriodicCaptureStateListInfo из перечисления TRACE_INFO_CLASS.
- Чтобы отключить периодическое состояние отслеживания, снова вызовите TraceSetInformation с tracePeriodicCaptureStateListInfo из TRACE_INFO_CLASS, null для TraceInformation и 0 в качестве InformationLength.
Требования
Верхняя часть | evntrace.h |