PEVENT_CALLBACK回呼函式 (evntrace.h)
ETW 事件取用者會實作此回呼,以接收來自追蹤處理會話的事件。 這個回呼不應該用於新的程式碼中。 請改為實作 EventRecordCallback。
PEVENT_CALLBACK類型是這個回呼函式的指標。 EventCallback 是應用程式定義函數名稱的佔位元。
語法
PEVENT_CALLBACK PeventCallback;
void PeventCallback(
[in] PEVENT_TRACE pEvent
)
{...}
參數
[in] pEvent
包含事件資訊的 EVENT_TRACE 結構的指標。
傳回值
無
備註
注意
此回呼已過時,因為它收到事件不完整的資訊,而且與 TdhGetEventInformation 之類的事件譯碼協助程式 API 不相容。 而不是實作 EventCallback,請實作 EventRecordCallback。
若要指定 ETW 呼叫傳遞事件的函式,請設定傳遞至 OpenTrace 函式之EVENT_TRACE_LOGFILE結構的 EventCallback 成員。
注意
如果您的 EventCallback 函式收到來自 ProcessTrace 的 garbled 數據,請仔細檢查提供給 OpenTrace 之 結構字段中EVENT_TRACE_LOGFILE
所指定的ProcessTraceMode
旗標。 EVENT_TRACE_LOGFILE
的 EventCallback 和 EventRecordCallback 欄位是等位的重疊成員。 ProcessTraceMode
如果欄位包含 PROCESS_TRACE_MODE_EVENT_RECORD
旗標,ProcessTrace 會使用 EventRecordCallback 函式簽章叫用回呼。 否則 ,ProcessTrace 會使用 EventCallback 函式簽章叫用回呼。
使用 OpenTrace 建立追蹤處理工作階段之後,請呼叫 ProcessTrace 函式以開始接收事件。
當 ProcessTrace 開始處理追蹤的事件時,它可能會使用一或多個包含追蹤 (元數據的相關綜合事件) 來叫用回呼,而不是來自記錄事件的數據。 這些綜合事件會根據綜合事件的內容,將 Header.Guid 設定為 EventTraceGuid
和 Header.Class.Type 集合。 例如,每個追蹤檔案中的第一個事件會是包含 TRACE_LOGFILE_HEADER 資訊類型 0 的綜合事件。
您收到的所有其他事件都包含提供者特定的事件數據。 您可以使用 EVENT_TRACE 的 Header.Guid 和 Header.Class.Type 成員來判斷您收到的事件類型。 可以硬式編碼已知事件類型的譯碼邏輯,但大部分事件都會使用命名空間中登錄系統上的 \\root\wmi
MOF架構信息來譯碼。 如需使用事件的MOF架構來解譯事件的相關信息,請參閱 取用事件。
範例
如需 EventCallback 函式的範例實作,請參閱 使用 MOF 擷取事件數據。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | evntrace.h |