Condividi tramite


PEVENT_CALLBACK funzione di callback (evntrace.h)

I consumer di eventi ETW implementano questo callback per ricevere eventi da una sessione di elaborazione di traccia. Questo callback non deve essere usato nel nuovo codice. Implementare invece EventRecordCallback.

Il tipo PEVENT_CALLBACK è un puntatore a questa funzione di callback. EventCallback è un segnaposto per il nome della funzione definita dall'applicazione.

Sintassi

PEVENT_CALLBACK PeventCallback;

void PeventCallback(
  [in] PEVENT_TRACE pEvent
)
{...}

Parametri

[in] pEvent

Puntatore a una struttura EVENT_TRACE contenente le informazioni sull'evento.

Valore restituito

nessuno

Osservazioni

Nota

Questo callback è obsoleto perché riceve informazioni incomplete sull'evento e non è compatibile con le API helper di decodifica degli eventi, ad esempio TdhGetEventInformation. Anziché implementare EventCallback, implementare EventRecordCallback.

Per specificare la funzione che ETW chiama per recapitare gli eventi, impostare il membro EventCallback della struttura EVENT_TRACE_LOGFILE passata alla funzione OpenTrace .

Nota

Se la funzione EventCallback riceve dati incomprensibili da ProcessTrace, controllare due volte i flag specificati nel ProcessTraceMode campo della EVENT_TRACE_LOGFILE struttura fornita a OpenTrace. EVENT_TRACE_LOGFILEI campi EventCallback e EventRecordCallback sono membri sovrapposti di un'unione. Se il ProcessTraceMode campo include il flag, ProcessTrace richiamerà il PROCESS_TRACE_MODE_EVENT_RECORD callback usando la firma della funzione EventRecordCallback. In caso contrario, ProcessTrace richiamerà il callback usando la firma della funzione EventCallback .

Dopo aver usato OpenTrace per creare la sessione di elaborazione della traccia, chiamare la funzione ProcessTrace per iniziare a ricevere gli eventi.

Quando ProcessTrace inizia a elaborare gli eventi da una traccia, può richiamare il callback con uno o più eventi sintetici che contengono dati sulla traccia (metadati) anziché i dati degli eventi registrati. Questi eventi sintetici hanno Header.Guid impostato su e Header.Class.Type impostato EventTraceGuid in base al contenuto dell'evento sintetico. Ad esempio, il primo evento di ogni file di traccia sarà un evento sintetico di tipo 0 contenente TRACE_LOGFILE_HEADER informazioni.

Tutti gli altri eventi ricevuti contengono dati di evento specifici del provider. Utilizzare i membri Header.Guid e Header.Class.Type di EVENT_TRACE per determinare il tipo di evento ricevuto. È possibile decodificare la logica di decodifica hardcoded per i tipi di eventi noti, ma la maggior parte degli eventi verrà decodificata usando le informazioni sullo schema MOF registrate nel sistema nello spazio dei \\root\wmi nomi . Per informazioni sull'uso dello schema MOF di un evento per interpretare l'evento, vedere Utilizzo di eventi.

Esempio

Per un esempio di implementazione di una funzione EventCallback , vedere Recupero dei dati degli eventi tramite MOF.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione evntrace.h

Vedi anche

Utilizzo di eventi

BufferCallback

EventRecordCallback

EVENT_TRACE_LOGFILE

OpenTrace

ProcessTrace