EventProviderEnabled 函式 (evntprov.h)

判斷事件提供者是否應該根據事件的 Level 和 Keyword 產生特定事件。

如果 ETW 可以快速判斷沒有會話正在接聽來自指定提供者的指定事件,則傳回 FALSE 。 否則會傳回 TRUE

語法

BOOLEAN EVNTAPI EventProviderEnabled(
  [in] REGHANDLE RegHandle,
  [in] UCHAR     Level,
  [in] ULONGLONG Keyword
);

參數

[in] RegHandle

提供者的註冊控制碼。 控制碼來自 EventRegister

如果 RegHandleNullEventProviderEnabled 會傳回 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) ,而不是直接呼叫 EventWriteEventProviderEnabled。 ETW 架構通常會提供自己的事件啟用 API,應該使用,而不是呼叫 EventProviderEnabled
  • ETW 架構實作通常會檢查自己的提供者狀態,而不是呼叫 EventProviderEnabled

如需詳細資訊,請參閱 EventEnabled

需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 evntprov.h
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

EventEnabled

EVENT_DESCRIPTOR