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


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

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

Синтаксис

NTSTATUS WmiTraceMessageVa(
  [in] TRACELOGGER_HANDLE 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 возвращает одно из следующих значений:

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

Замечания

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

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

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

WmiTraceMessageVa не регистрирует сообщение, если одно из следующих значений имеет значение true:

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

Требования

Требование Ценность
Минимальный поддерживаемый клиент Доступно в Windows XP и более поздних версиях Windows.
целевая платформа Всеобщий
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL См. раздел "Примечания".

См. также

IoWMIWriteEvent

TRACE_INFORMATION_CLASS

WmiFireEvent

WmiQueryTraceInformation

WmiTraceMessage