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


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

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

Синтаксис

NTSTATUS WmiTraceMessage(
  [in] TRACELOGGER_HANDLE LoggerHandle,
  [in] ULONG              MessageFlags,
  [in] LPCGUID            MessageGuid,
  [in] USHORT             MessageNumber,
       ...                
);

Параметры

[in] LoggerHandle

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

[in] MessageFlags

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

[in] MessageGuid

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

[in] MessageNumber

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

[in] ...

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

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

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

Код возврата Описание
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).
 

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

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

Требования

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

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

IoWmiWriteEvent

TRACE_INFORMATION_CLASS

WmiFireEvent

WmiQueryTraceInformation

WmiTraceMessageVa