TraceLoggingValue 宏 (traceloggingprovider.h)
用于 C++ 的 TraceLogging 包装宏,用于向事件添加具有自动推导类型的字段。
语法
void TraceLoggingValue(
[in] value,
[in, optional] __VA_ARGS__
);
参数
[in] value
事件字段值。
[in, optional] __VA_ARGS__
字段定义的可选 名称、 说明和 标记 参数。
可以使用 1、2、3 或 4 个参数指定 TraceLoggingValue。 如果未指定参数,将使用默认值。 例如,TraceLoggingValue(a+b)
等效于 TraceLoggingValue(a+b, "a+b", "", 0)
。
[in, optional] name
要用于事件字段的名称。 如果提供名称参数,则名称参数必须是字符串文本 (而不是) 变量,并且不得包含任何“\0”字符。 如果未提供,事件字段名称将基于 值。
[in, optional] description
事件字段值的说明。 如果提供说明参数,则说明参数必须是字符串文本,并且将包含在 PDB 中。
[in, optional] tags
编译时常量整数值。 该值的低 28 位将包含在字段的元数据中。 此值的语义由事件使用者定义。 在事件处理期间,可以从 “EVENT_PROPERTY_INFO 标记”字段检索此值。
返回值
无
备注
在 C++ 代码中, TraceLoggingValue(value, ...)
可用作 TraceLoggingWrite 宏调用的参数。 每个 TraceLoggingValue 参数都会向事件添加一个字段。
ETW 事件中的字段类型会自动从 值 表达式的类型推导。 根据 值的类型, TraceLoggingValue(value, ...)
等效于标准 TraceLogging 包装宏之一,如下所示:
值类型 | 等效于 | 备注 |
---|---|---|
bool |
TraceLoggingBoolean | |
char |
TraceLoggingChar | 仅适用于 char,而不适用于已签名 char 或 unsigned char。 |
char16_t |
TraceLoggingChar16 | |
wchar_t |
TraceLoggingWChar | 仅适用于本机wchar_t,不适用于 USHORT。 |
intNN_t |
TraceLoggingIntNN | 对于带符号字符,short、int、long 和 long。 |
uintNN_t |
TraceLoggingUIntNN | 对于无符号 char,short、int、long 和 long long。 |
float |
TraceLoggingFloat32 | |
double |
TraceLoggingFloat64 | |
GUID |
TraceLoggingGuid | |
FILETIME |
TraceLoggingFileTime | |
SYSTEMTIME |
TraceLoggingSystemTime | |
SID* |
TraceLoggingSid | 必须为非 NULL,并且必须指向有效的 SID 。 |
void* |
TraceLoggingPointer | 记录指针值,而不是引用的数据。 |
char* |
TraceLoggingString | 零终止CP_ACP字符串。 NULL 被视为 "" 。 |
char16_t* |
TraceLoggingString16 | 以零结尾的 UTF-16 字符串。 NULL 被视为 u"" 。 |
wchar_t* |
TraceLoggingWideString | 以零结尾的 UTF-16 字符串。 NULL 被视为 L"" 。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | traceloggingprovider.h |