Funzione UpdateTraceA (evntrace.h)

La funzione UpdateTrace aggiorna l'impostazione della proprietà della sessione di traccia eventi specificata.

questa funzione è obsoleta. La funzione ControlTrace sostituisce questa funzione.

Sintassi

ULONG WMIAPI UpdateTraceA(
  CONTROLTRACE_ID         TraceId,
  LPCSTR                  InstanceName,
  PEVENT_TRACE_PROPERTIES Properties
);

Parametri

TraceId

InstanceName

Nome della sessione di traccia eventi da aggiornare o NULL. È necessario specificare InstanceName se TraceHandle è 0.

Per specificare la sessione Nt Kernel Logger, impostare InstanceNamesu KERNEL_LOGGER_NAME.

Properties

Puntatore a una struttura EVENT_TRACE_PROPERTIES inizializzata.

All'input, i membri devono specificare i nuovi valori per le proprietà da aggiornare. Per informazioni sulle proprietà che è possibile aggiornare, vedere Osservazioni.

Nell'output, i membri della struttura contengono le impostazioni e le statistiche aggiornate per la sessione di traccia eventi.

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. La tabella seguente include alcuni errori comuni e le relative cause.

  • ERROR_BAD_LENGTH

    Il membro BufferSize del membro Wnode di Properties specifica una dimensione non corretta.

  • ERROR_INVALID_PARAMETER

    Una delle seguenti condizioni è vera:

    • Le proprietà sono NULL.
    • InstanceName e TraceHandle sono entrambi NULL.
    • InstanceName è NULL e TraceHandle non è un handle valido.
    • Il membro LogFileNameOffset di Properties non è valido.
    • Il membro LoggerNameOffset di Properties non è valido.

    Windows Server 2003 e Windows XP: Il membro Guid della struttura Wnode è SystemTraceControlGuid, ma il parametro InstanceName non è KERNEL_LOGGER_NAME.

  • ERROR_ACCESS_DENIED

    Solo gli utenti con privilegi amministrativi, gli utenti nel gruppo Performance Log Users e i servizi in esecuzione come LocalSystem, LocalService, NetworkService possono controllare le sessioni di traccia degli eventi. Per concedere a un utente con restrizioni la possibilità di controllare le sessioni di traccia, aggiungerle al gruppo Performance Log Users .

    Windows XP e Windows 2000: Chiunque può controllare una sessione di traccia.

Commenti

I controller di traccia eventi chiamano questa funzione.

questa funzione è obsoleta. Usare invece ControlTrace con ControlCode impostato su EVENT_TRACE_CONTROL_UPDATE.

All'input, i membri devono specificare i nuovi valori per le proprietà da aggiornare. È possibile aggiornare le proprietà seguenti.

  • EnableFlags: impostare questo membro su 0 per disabilitare tutti i provider del kernel. In caso contrario, è necessario specificare i provider del kernel che si desidera abilitare o mantenere abilitati. Si applica solo alle sessioni di logger di sistema.

  • FlushTimer: impostare questo membro se si desidera modificare il tempo di attesa prima di scaricare i buffer. Se questo membro è 0, il membro non viene aggiornato.

  • LogFileNameOffset: impostare questo membro se si vuole passare a un altro file di log. Se il membro è 0, il nome del file non viene aggiornato. Se l'offset non è zero e non si modifica il nome del file di log, la funzione restituisce un errore.

  • LogFileMode: impostare questo membro se si desidera attivare e disattivare EVENT_TRACE_REAL_TIME_MODE . Per disattivare l'utilizzo in tempo reale, impostare questo membro su 0. Per attivare il tempo reale, impostare questo membro su EVENT_TRACE_REAL_TIME_MODE e sarà OR con le modalità correnti.

  • MaximumBuffers: impostare questo membro se si desidera modificare il numero massimo di buffer usati da ETW. Se questo membro è 0, il membro non viene aggiornato.

Per le sessioni del logger privato, è possibile aggiornare solo LogFileNameOffset e FlushTimer.

Se si usa una struttura di EVENT_TRACE_PROPERTIES appena inizializzata, gli unici membri da specificare, ad eccezione dei membri che si stanno aggiornando, sono Wnode.BufferSize, Wnode.Guid e Wnode.Flags.

Se si utilizza la struttura di proprietà passata a StartTrace, assicurarsi che il membro LogFileNameOffset sia 0, a meno che non si stia modificando il nome del file di log.

Se si chiama la funzione ControlTrace per eseguire una query sulle proprietà della sessione corrente e quindi aggiornare tali proprietà per aggiornare la sessione, assicurarsi di impostare LogFileNameOffset su 0 (a meno che non si stia modificando il nome del file di log) e impostare EVENT_TRACE_PROPERTIES. Wnode.Flags per WNODE_FLAG_TRACED_GUID.

Per ottenere le impostazioni delle proprietà e le statistiche di sessione per una sessione di traccia eventi, chiamare la funzione ControlTrace .

Esempio

Per un esempio che usa UpdateTrace, vedere Aggiornamento di una sessione di traccia eventi.

Nota

L'intestazione evntrace.h definisce UpdateTrace come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

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
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

ControlTrace