Функция WmiTraceMessageVa (wdm.h)

Подпрограмма WmiTraceMessageVa добавляет сообщение в журнал выходных данных сеанса трассировки программного обеспечения WPP .

Синтаксис

NTSTATUS WmiTraceMessageVa(
  [in] TRACEHANDLE LoggerHandle,
  [in] ULONG       MessageFlags,
  [in] LPCGUID     MessageGuid,
  [in] USHORT      MessageNumber,
  [in] va_list     MessageArgList
);

Параметры

[in] LoggerHandle

Указывает дескриптор трассировки для сеанса трассировки программного обеспечения.

[in] MessageFlags

Задает побитовую ИЛИ одного или нескольких флагов сообщения. Подробные сведения см. в разделе "Заметки".

[in] MessageGuid

Указывает GUID, идентифицирующий класс трассировки программного обеспечения.

[in] MessageNumber

Определяет подтип сообщения. Значение подтипов зависит от класса трассировки программного обеспечения и поставщика.

[in] MessageArgList

Предоставляет обязательный список параметров сообщения, определяющих набор частей сообщения. Параметры организованы в виде последовательности пар параметров, где каждая пара задает одну часть полного сообщения. Каждая пара параметров состоит из указателя PVOID на данные, за которым сразу же следует значение ULONG, указывающее длину данных. Список параметров должен быть завершен указателем NULL PVOID, за которым следует ULONG(0).

Возвращаемое значение

WmiTraceMessageVa возвращает одно из следующих значений:

Код возврата Описание
STATUS_SUCCESS
Операция выполнена успешно.
STATUS_INVALID_HANDLE
LoggerHandle не является допустимым маркером трассировки программного обеспечения.
STATUS_NO_MEMORY
Недостаточно буферной памяти для записи сообщения в журнал. Дополнительные сведения см. в разделе "Примечания".
Другое значение NTSTATUS
Внутренняя ошибка.

Комментарии

Вызывающий объект может использовать WmiTraceMessage или WmiTraceMessageVa для добавления сообщения в журнал выходных данных сеанса трассировки программного обеспечения WPP. WmiTraceMessage упрощает код вызывающего абонента, обрабатывая механизм списка переменных перед вызовом WmiTraceMessageVa.

Вызывающий объект может задать следующие флаги сообщений:

Flag Описание
TRACE_MESSAGE_SEQUENCE Включите порядковый номер в сообщение. Виртуализацию сообщений можно использовать, только если она включена для сеанса трассировки программного обеспечения, заданного LoggerHandle.
TRACE_MESSAGE_GUID MessageGuid задает GUID, который идентифицирует класс трассировки программного обеспечения. Этот флаг должен быть установлен.
TRACE_MESSAGE_TIMESTAMP Включите метку времени в сообщение.
TRACE_MESSAGE_PERFORMANCE_TIMESTAMP Этот флаг не реализован и устарел. Его не следует использовать.
TRACE_MESSAGE_SYSTEMINFO Включите идентификатор потока (TID) и идентификатор процесса (PID) в сообщение.
 

WmiTraceMessageVa не регистрирует сообщение, если выполняется одно из следующих действий:

  • Общий размер данных сообщения и заголовка сообщения в байтах больше размера отдельных буферов сообщений, выделенных для сеанса трассировки программного обеспечения. (Максимальный размер заголовка сообщения — 48 байт.)
  • Все буферы сообщений, выделенные для сеанса трассировки программного обеспечения, заполнены.
WmiTraceMessageVa выполняется в IRQL вызывающего объекта.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows XP и более поздних версиях Windows.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL См. раздел "Примечания".

См. также раздел

IoWmiWriteEvent

TRACE_INFORMATION_CLASS

WmiFireEvent

WmiQueryTraceInformation

WmiTraceMessage