Funzione EnableTrace (evntrace.h)
Un controller di sessione di traccia chiama EnableTrace per configurare il modo in cui un provider di eventi ETW registra gli eventi in una sessione di traccia.
questa funzione è obsoleta. La funzione EnableTraceEx2 sostituisce questa funzione.
Sintassi
ULONG WMIAPI EnableTrace(
[in] ULONG Enable,
[in] ULONG EnableFlag,
[in] ULONG EnableLevel,
[in] LPCGUID ControlGuid,
CONTROLTRACE_ID TraceId
);
Parametri
[in] Enable
Impostare su 1 per abilitare la ricezione di eventi dal provider o per modificare le impostazioni usate durante la ricezione di eventi dal provider, ad esempio per modificare il livello e le parole chiave. Impostare su 0 per disabilitare la ricezione di eventi dal provider.
[in] EnableFlag
Maschera di bit a 32 bit di parole chiave che determinano le categorie di eventi che si desidera che il provider scriva. Il provider scrive in genere un evento se i bit della parola chiave dell'evento corrispondono a uno qualsiasi dei bit impostati in questo valore o se l'evento non ha bit di parole chiave impostati, oltre a soddisfare il critera EnableLevel .
Nota
I provider basati su EventRegister supportano parole chiave a 64 bit. Usare EnableTraceEx2 per abilitare i provider usando una maschera MatchAnyKeyword a 64 bit.
[in] EnableLevel
Valore che indica il livello massimo di eventi che il provider deve scrivere. Il provider scrive in genere un evento se il livello dell'evento è minore o uguale a questo valore, oltre a soddisfare i criteri EnableFlag .
Questo valore deve essere compreso nell'intervallo compreso tra 1 e 255. Microsoft definisce la semantica dei livelli 1-5, come illustrato di seguito. I valori inferiori indicano eventi più gravi. Ogni valore di EnableLevel abilita il livello specificato e tutti i livelli più gravi. Ad esempio, se si specifica TRACE_LEVEL_WARNING
, il consumer riceverà avvisi, errori ed eventi critici.
Valore | Significato |
---|---|
TRACE_LEVEL_CRITICAL (1) | Eventi di chiusura o chiusura anomali |
TRACE_LEVEL_ERROR (2) | Eventi di errore gravi |
TRACE_LEVEL_WARNING (3) | Eventi di avviso, ad esempio errori di allocazione |
TRACE_LEVEL_INFORMATION (4) | Eventi informativi non di errore |
TRACE_LEVEL_VERBOSE (5) | Eventi di diagnostica dettagliati |
Le TRACE_LEVEL
costanti sono definite in evntrace.h. Le costanti equivalenti WINMETA_LEVEL
sono definite in winmeta.h.
[in] ControlGuid
GUID del controllo (ID provider) del provider di eventi che si desidera abilitare o disabilitare.
TraceId
Valore restituito
Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS.
Se la funzione ha esito negativo, il valore restituito è uno dei codici di errore di sistema. Di seguito sono riportati alcuni errori comuni e le relative cause.
ERROR_INVALID_PARAMETER
Una delle seguenti condizioni è vera:
- ControlGuid è NULL.
- TraceHandle è NULL.
ERROR_INVALID_FUNCTION
Non è possibile modificare i flag di abilitazione e il livello quando il provider non è registrato.
ERROR_WMI_GUID_NOT_FOUND
Il provider non è registrato. Si verifica quando KB307331 o Windows 2000 Service Pack 4 è installato e il provider non è registrato. Per evitare questo errore, il provider deve prima essere registrato.
ERROR_NO_SYSTEM_RESOURCES
È stato superato il numero di sessioni di traccia che possono abilitare il provider.
ERROR_ACCESS_DENIED
Solo gli utenti con privilegi amministrativi, gli utenti nel
Performance Log Users
gruppo e i servizi in esecuzione comeLocalSystem
,LocalService
oNetworkService
possono abilitare i provider di eventi a una sessione tra processi. Per concedere a un utente con restrizioni la possibilità di abilitare un provider di eventi, aggiungerli alPerformance Log Users
gruppo o vedere EventAccessControl.Windows XP e Windows 2000: Chiunque può abilitare un provider di eventi.
Commenti
I controller di traccia eventi chiamano questa funzione per configurare i provider di eventi che scrivono eventi nella sessione. Ad esempio, un controller potrebbe chiamare questa funzione per iniziare a raccogliere eventi da un provider, per modificare il livello o le parole chiave degli eventi raccolti da un provider o per interrompere la raccolta di eventi da un provider.
questa funzione è obsoleta. Per altre funzionalità, il nuovo codice deve usare EnableTraceEx2.
Le due chiamate di funzione seguenti sono equivalenti:
// Obsolete:
Status = EnableTrace(
Enable,
EnableFlag,
EnableLevel,
ControlGuid,
TraceHandle);
// Updated equivalent code:
Status = EnableTraceEx2(
TraceHandle,
ControlGuid,
Enable, // ControlCode
EnableLevel,
EnableFlag, // MatchAnyKeyword
0, // MatchAllKeyword
0, // Timeout
NULL); // EnableParameters
Per altri dettagli sulla semantica della configurazione dei provider per una sessione, vedere la documentazione per EnableTraceEx2.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [app desktop | App UWP] |
Server minimo supportato | Windows 2000 Server [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | evntrace.h |
Libreria | Advapi32.lib |
DLL | Advapi32.dll |