TRACE_PERIODIC_CAPTURE_STATE_INFO struttura (evntrace.h)
Usato con TraceQueryInformation e TraceSetInformation per ottenere o impostare informazioni relative a uno stato di acquisizione periodico.
Sintassi
typedef struct _TRACE_PERIODIC_CAPTURE_STATE_INFO {
ULONG CaptureStateFrequencyInSeconds;
USHORT ProviderCount;
USHORT Reserved;
} TRACE_PERIODIC_CAPTURE_STATE_INFO, *PTRACE_PERIODIC_CAPTURE_STATE_INFO;
Members
CaptureStateFrequencyInSeconds
Frequenza di acquisizione dello stato in secondi.
ProviderCount
Numero di provider.
Reserved
Riservato per utilizzi futuri.
Commenti
Lo stato di acquisizione periodico è un modo per consentire l'invio routine delle notifiche sullo stato ai provider. Quando questa operazione è abilitata, le notifiche verranno inviate solo alle registrazioni del provider abilitate in precedenza alla sessione corrente. Ogni provider può definire la propria risposta (se disponibile) a una notifica. Si noti che gli eventi registrati dal provider in risposta a una notifica verranno inviati a ogni sessione ETW abilitata dal provider, simile a uno stato di acquisizione richiesto manualmente.
Per usare lo stato di acquisizione periodico:
- Allocare un buffer di tipo TRACE_PERIODIC_CAPTURE_STATE_INFO. Le dimensioni del buffer devono essere: sizeof(TRACE_PERIODIC_CAPTURE_STATE_INFO) + (x * sizeof(GUID)), dove x è il numero di provider che si desidera abilitare.
- Chiamare TraceQueryInformation usando TracePeriodicCaptureStateInfo per l'enumerazione TRACE_INFO_CLASS . Passare il buffer e le relative dimensioni come parametri TraceInformation e InformationLength di TraceQueryInformation.
- Impostare CaptureStateFrequencyInSeconds da TRACE_PERIODIC_CAPTURE_STATE_INFO alla frequenza minima supportata dalla versione di Windows. Questo valore può cambiare in futuro, quindi non è consigliabile scrivere codice rigido. Se la frequenza è inferiore al minimo, la chiamata a TraceSetInformation avrà esito negativo.
- Impostare ProviderCount da TRACE_PERIODIC_CAPTURE_STATE_INFO al numero di GUID del provider passati.
- Aggiungere i GUID di ogni provider dopo la fine della struttura TRACE_PERIODIC_CAPTURE_STATE_INFO . Questo usa lo spazio aggiuntivo allocato da (x * sizeof(GUID)) dal primo passaggio.
- Chiamare TraceSetInformation usando TracePeriodicCaptureStateListInfo dall'enumerazione TRACE_INFO_CLASS .
- Per disattivare lo stato di acquisizione periodico, chiamare di nuovo TraceSetInformation con TracePeriodicCaptureStateListInfo dalla TRACE_INFO_CLASS, NULL per TraceInformation e 0 come InformationLength.
Requisiti
Intestazione | evntrace.h |