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


Функция 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 на данные, за которым следует сразу же size_t значение, указывающее длину данных. Список параметров должен быть завершен указателем NULL PVOID, за которым следует size_t(0).

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

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

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

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

  • Общий размер данных сообщения в байтах и заголовка сообщения превышает размер отдельных буферов сообщений, выделенных для сеанса трассировки программного обеспечения. (Максимальный размер заголовка сообщения составляет 48 байт.)
  • Все буферы сообщений, выделенные сеансу трассировки программного обеспечения, заполнены.
WmiTraceMessage выполняется в 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

WmiTraceMessageVa