Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете использовать блок конфигурации препроцессора WPP для добавления данных в сообщения трассировки.
Блок конфигурации WPP определяется инструкциями конфигурации begin_wpp и end_wpp , которые вы размещаете в исходном коде.
//begin_wpp config
...
Блок конфигурации
...
end_wpp
Если вы помещаете данные конфигурации в файл заголовка, укажите имя файла заголовка в свойствах проекта (для трассировки WPP). В разделе "Параметры файла " на странице свойств укажите файл конфигурации сканирования. Дополнительные сведения см. в препроцессоре WPP .
Синтаксис блока конфигурации
USEPREFIX (Function_Name, "Формат строки");
Определяет префикс строки формата, используемый при регистрации события. Первый параметр — это имя функции, к которой применяется этот префикс. Второй параметр — это строка форматирования, используемая. Чтобы использовать значение по умолчанию, укажите %! STDPREFIX!. Префикс сообщения трассировки по умолчанию указывает номер ЦП, идентификатор процесса, идентификатор потока, метку времени в формате UTC и понятное имя GUID элемента управления.
//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");
FUNCFunction_Name{args}(EXP);
Определяет имя и сигнатуру функции трассировки. Фигурные скобки { } используются для определения заданных значений для функции. В следующем примере функция принимает один аргумент и не имеет строки формата, а значение LEVEL имеет значение ERROR.
//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);
USESUFFIX (Function_Name, "Формат строки");
Определяет суффикс строки формата, используемый при регистрации события. Первый параметр — это имя функции, к которой применяется этот суффикс. Второй параметр — это строка форматирования, используемая. В коде можно использовать имена переменных.
//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);
Пример блока конфигурации
В следующем примере определяется макрос трассировки, который использует префикс и суффикс строки формата. Если вы определяете макрос трассировки, необходимо также определить макросы, чтобы выбрать средство ведения журнала и проверить, следует ли регистрировать событие.
//MACRO: TRACE_RETURN
//
//begin_wpp config
//USEPREFIX (TRACE_RETURN, "%!STDPREFIX!");
//FUNC TRACE_RETURN{LEVEL=ERROR}(EXP);
//USESUFFIX (TRACE_RETURN, "Function Return=%!HRESULT!",EXP);
//end_wpp
//
// The next two macros are for checking if the event should be logged, and for
// choosing the logger handle to use when calling the ETW trace API
//
#define WPP_LEVEL_EXP_ENABLED(LEVEL, HR) WPP_FLAG_ENABLED(LEVEL)
#define WPP_LEVEL_EXP_LOGGER(LEVEL, HR) WPP_FLAG_LOGGER(LEVEL)
Пример результатов трассировки
[0]0F78.0460::06/24/2006-15:54:54.880 [tracedrv]Function Return=0x8000000f(STATUS_DEVICE_POWERED_OFF)