共用方式為


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_LOGFILEEventCallbackEventRecordCallback 欄位是等位的重疊成員。 ProcessTraceMode如果欄位包含 PROCESS_TRACE_MODE_EVENT_RECORD 旗標,ProcessTrace 會使用 EventRecordCallback 函式簽章叫用回呼。 否則 ,ProcessTrace 會使用 EventCallback 函式簽章叫用回呼。

使用 OpenTrace 建立追蹤處理工作階段之後,請呼叫 ProcessTrace 函式以開始接收事件。

ProcessTrace 開始處理追蹤的事件時,它可能會使用一或多個包含追蹤 (元數據的相關綜合事件) 來叫用回呼,而不是來自記錄事件的數據。 這些綜合事件會根據綜合事件的內容,將 Header.Guid 設定為 EventTraceGuidHeader.Class.Type 集合。 例如,每個追蹤檔案中的第一個事件會是包含 TRACE_LOGFILE_HEADER 資訊類型 0 的綜合事件。

您收到的所有其他事件都包含提供者特定的事件數據。 您可以使用 EVENT_TRACEHeader.GuidHeader.Class.Type 成員來判斷您收到的事件類型。 可以硬式編碼已知事件類型的譯碼邏輯,但大部分事件都會使用命名空間中登錄系統上的 \\root\wmi MOF架構信息來譯碼。 如需使用事件的MOF架構來解譯事件的相關信息,請參閱 取用事件

範例

如需 EventCallback 函式的範例實作,請參閱 使用 MOF 擷取事件數據

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 evntrace.h

另請參閱

取用事件

BufferCallback

EventRecordCallback

EVENT_TRACE_LOGFILE

OpenTrace

ProcessTrace