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
指定一个或多个消息标志的按位 OR。 有关详细信息,请参见“备注”部分。
[in] MessageGuid
指定标识软件跟踪类的 GUID。
[in] MessageNumber
标识消息子类型。 子类型的含义特定于软件跟踪类和提供程序。
[in] MessageArgList
提供指定一组消息部分的消息参数的必需列表。 参数组织为参数对序列,其中每个参数对指定完整消息的一部分。 每个参数对由指向数据的 PVOID 指针组成,后跟一个指定数据长度的 ULONG 值。 参数列表必须由 NULL PVOID 指针终止,后跟 ULONG (0) 。
返回值
WmiTraceMessageVa 返回以下值之一:
返回代码 | 说明 |
---|---|
|
操作已成功完成。 |
|
LoggerHandle 不是有效的软件跟踪句柄。 |
|
缓冲区内存不足,无法记录消息。 有关详细信息,请参阅备注部分。 |
|
发生内部错误。 |
注解
调用方可以使用 WmiTraceMessage 或 WmiTraceMessageVa 将消息添加到 WPP 软件跟踪会话的输出日志。 WmiTraceMessage 通过在调用 WmiTraceMessageVa 之前处理变量列表机制来简化调用方的代码。
调用方可以设置以下消息标志:
标志 | 描述 |
---|---|
TRACE_MESSAGE_SEQUENCE | 在消息中包含序列号。 只有在为 LoggerHandle 指定的软件跟踪会话启用消息序列化时,才能使用它。 |
TRACE_MESSAGE_GUID | MessageGuid 指定标识软件跟踪类的 GUID。 必须设置此标志。 |
TRACE_MESSAGE_TIMESTAMP | 在邮件中包含时间戳。 |
TRACE_MESSAGE_PERFORMANCE_TIMESTAMP | 此标志未实现且 已过时。 不得使用它。 |
TRACE_MESSAGE_SYSTEMINFO | 将线程标识符 (TID) 和进程标识符 (PID) 包含在消息中。 |
如果以下情况之一为 true,WmiTraceMessageVa 不会记录消息:
- 消息数据和消息标头的总大小(以字节为单位)大于为软件跟踪会话分配的单个消息缓冲区的大小。 (最大消息头大小为 48 字节。)
- 分配给软件跟踪会话的所有消息缓冲区已满。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows XP 和更高版本的 Windows 中可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 请参见“备注”部分。 |