TraceLoggingValue 宏 (traceloggingprovider.h)
C++ 的 TraceLogging 包裝函式宏,會將具有自動推斷類型的欄位加入事件。
語法
void TraceLoggingValue(
[in] value,
[in, optional] __VA_ARGS__
);
參數
[in] value
事件域值。
[in, optional] __VA_ARGS__
欄位定義的選擇性 名稱、 描述和 標記 參數。
TraceLoggingValue 可以使用 1、2、3 或 4 參數來指定。 如果未指定參數,則會使用預設值。 例如,TraceLoggingValue(a+b)
相當於 TraceLoggingValue(a+b, "a+b", "", 0)
。
[in, optional] name
要用於事件欄位的名稱。 如果提供,name 參數必須是字串常值, (不是變數) ,且不得包含任何 '\0' 字元。 如果未提供,事件功能變數名稱將會以 值為基礎。
[in, optional] description
事件欄位值的描述。 如果提供,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 | 針對帶正負號的 char、short、int、long 和 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 |