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


Как назначаются значения флагов?

Флаги трассировки определяются независимо каждым поставщиком трассировки. В результате значения флагов для одного поставщика могут означать что-то совершенно отличное от значений флагов для другого поставщика. Чтобы интерпретировать значения, необходимо понимать поставщика.

Как правило, флаги трассировки представляют все более подробные уровни отчетности.

Значения флагов определяются в WPP_DEFINE_BIT элементах макроса WPP_CONTROL_GUIDS , например:

#define WPP_CONTROL_GUIDS \
    WPP_DEFINE_CONTROL_GUID(GUIDFriendlyName, (ControlGUID),  \
        WPP_DEFINE_BIT(Error)  \
        WPP_DEFINE_BIT(Unusual)  \
        WPP_DEFINE_BIT(Noise) )

Windows присваивает каждому элементу WPP_DEFINE_BIT последовательное битовое значение, начинающееся с 1. Например, он назначает 1 первому биту (Ошибка), 2 второму биту (необычный) и 4 третьему биту (Шум).

При запуске сеанса трассировки используйте битовое значение для представления флагов. Например, следующая команда использует Tracelog для запуска сеанса трассировки с поставщиком трассировки , определенным ранее. Он задает для флага значение 4 (шум).

tracelog -start MyTrace -guid MyDriver.guid -flags 4