EventProviderEnabled 函式 (evntprov.h)
判斷事件提供者是否應該根據事件的 Level 和 Keyword 產生特定事件。
如果 ETW 可以快速判斷沒有會話正在接聽來自指定提供者的指定事件,則傳回 FALSE 。 否則會傳回 TRUE。
語法
BOOLEAN EVNTAPI EventProviderEnabled(
[in] REGHANDLE RegHandle,
[in] UCHAR Level,
[in] ULONGLONG Keyword
);
參數
[in] RegHandle
提供者的註冊控制碼。 控制碼來自 EventRegister。
如果 RegHandle 為 Null, EventProviderEnabled 會傳回 FALSE。
[in] Level
用來描述事件的嚴重性或重要性的 8 位數位。 如需事件層級值的詳細資訊 ,請參閱EVENT_DESCRIPTOR 。
[in] Keyword
64 位位元遮罩,用來指出事件類別集合中的事件成員資格。 如需事件關鍵字值的詳細資訊 ,請參閱EVENT_DESCRIPTOR 。
傳回值
如果 ETW 可以快速判斷沒有會話正在接聽來自指定提供者的指定事件,則傳回 FALSE 。 否則會傳回 TRUE。
備註
此 API 提供簡單的方法來判斷事件是否已啟用 (亦即,任何事件取用者會話是否有興趣根據提供者控制碼、事件層級和事件關鍵字接收事件) 。
注意
此 API 會執行保守的快速測試。 在某些情況下,此 API 可能會傳回 true,其中後續的深入篩選會判斷不需要記錄事件會話。
此 API 提供的功能類似于 EventEnabled所提供的功能。 當提供者可以存取事件的完整 EVENT_DESCRIPTOR時,提供者應該使用 EventEnabled。 當提供者只能存取事件的 Level 和 Keyword 時,提供者應該使用 EventProviderEnabled。
大部分的事件提供者都不會直接呼叫 EventProviderEnabled :
- EventWrite API 包含自己的EventProviderEnabled測試,並在未啟用事件時立即傳回。
- 大部分的 ETW 提供者會使用 ETW 架構 (,例如資訊清單或 TraceLogging) ,而不是直接呼叫 EventWrite 或 EventProviderEnabled。 ETW 架構通常會提供自己的事件啟用 API,應該使用,而不是呼叫 EventProviderEnabled。
- ETW 架構實作通常會檢查自己的提供者狀態,而不是呼叫 EventProviderEnabled。
如需詳細資訊,請參閱 EventEnabled。
需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | evntprov.h |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |