WMIDPREQUEST 回呼函式 (evntrace.h)
RegisterTraceGuids 型 (「傳統」) 事件提供者會實作此函式,以接收控制器的啟用或停用通知要求。
WMIDPREQUEST 類型會定義這個回呼函式的指標。 ControlCallback 是應用程式定義函數名稱的佔位元。
語法
WMIDPREQUEST Wmidprequest;
ULONG Wmidprequest(
[in] WMIDPREQUESTCODE RequestCode,
PVOID RequestContext,
ULONG *BufferSize,
[in] PVOID Buffer
)
{...}
參數
[in] RequestCode
要求程序代碼。 這會是下列其中一個值。
值 | 意義 |
---|---|
WMI_ENABLE_EVENTS | 啟用提供者或變更提供者組態。 |
WMI_DISABLE_EVENTS | 停用此提供者。 |
RequestContext
提供者定義的內容。 提供者使用 的 RequestContext 參數
RegisterTraceGuids 以指定內容。
BufferSize
保留供內部使用。
[in] Buffer
WNODE_HEADER 結構的指標,其中包含啟用或停用提供者的事件追蹤會話相關信息。
傳回值
如果回呼成功,您應該傳回ERROR_SUCCESS。 請注意,ETW 會忽略此函式的傳回值,除非控制器呼叫 EnableTrace 來啟用提供者,而且提供者尚未呼叫 RegisterTraceGuids。 發生這種情況時,如果註冊成功, RegisterTraceGuids 會傳回此回呼的傳回值。
備註
此函式是使用 RegisterTraceGuids 函式來指定。 當控制器呼叫 EnableTrace 函式以啟用、停用或變更啟用旗標或層級時,ETW 會呼叫此回呼。 提供者會根據 RequestCode 值啟用或停用本身。 一般而言,提供者會使用此值來設定全域旗標,以指出其啟用狀態。
提供者會定義其啟用或停用的解譯。 一般而言,如果啟用提供者,它會產生事件,但停用時則不會。
ETW 不會傳遞啟用旗標,也不會將控制器傳遞給 EnableTrace 函式的啟用層級傳遞至此回呼。 若要擷取此資訊,請分別呼叫 GetTraceEnableFlags 和 GetTraceEnableLevel 函式。
您也需要在此回呼中擷取會話句柄,以供日後呼叫使用。 若要擷取會話句柄,請呼叫 GetTraceLoggerHandle 函式 。
您的回呼函式不得呼叫可能更具體地產生 LoadLibra (ry 的任何專案,任何需要載入器鎖定) 的專案。
範例
如需 ControlCallback 函式的範例實作,請參閱 撰寫傳統事件。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | evntrace.h |