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


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

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

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

Значения флагов определяются в 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