Novità di Event Tracing

Questa sezione descrive le nuove funzionalità aggiunte a Event Tracing for Windows in ogni versione.

Windows 10, versione 1709

ETW ora può ora tenere traccia dei file binari per tutti i provider abilitati per la sessione. Il rilevamento si applica in modo retroattivo per i provider abilitati alla sessione prima della chiamata, nonché per tutti i provider futuri abilitati alla sessione. È anche possibile eseguire una query per il numero massimo attualmente configurato di logger di sistema consentiti dal sistema operativo. Per altre informazioni, vedere i valori TraceProviderBinaryTracking e TraceMaxLoggersQuery dell'enumerazione TRACE_INFO_CLASS , nonché recupero di dati aggiuntivi di traccia eventi.

ETW ora può filtrare gli eventi in base al nome dell'evento. È anche possibile determinare quali eventi ottengono gli stack acquisiti. Per altre informazioni, vedere i valori di EVENT_FILTER_TYPE_EVENT_NAME, EVENT_FILTER_TYPE_STACKWALK_NAME e EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW della struttura EVENT_FILTER_DESCRIPTOR , nonché le strutture EVENT_FILTER_EVENT_NAME e EVENT_FILTER_LEVEL_KW associate.

Windows 10

TraceLogging si basa su ETW e offre un modo semplificato per instrumentare il codice per sviluppatori nativi, .NET e WinRT. TraceLogging consente di includere dati strutturati con eventi, correlare eventi e non richiede un file XML manifesto di strumentazione separato.

I tratti del provider sono stati aggiunti come metodo per collegare più dati a una singola registrazione del provider. Possono essere usati per provider basati su manifesto o TraceLogging. Questo include attualmente il supporto per l'aggiunta di un nome provider e/o di un gruppo di provider a una registrazione a un singolo provider. I gruppi di provider sono una nuova funzionalità per consentire a più provider ETW di essere controllati in modo aggregato dal gruppo a cui appartengono.

Lo stato di acquisizione periodico è un modo per consentire l'invio di routine delle notifiche di stato di acquisizione ai provider. Quando questa opzione è 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. Per informazioni dettagliate sull'implementazione, vedere TRACE_PERIODIC_CAPTURE_STATE_INFO.

Windows 8.1 e Windows Server 2012 R2

Le funzionalità seguenti sono state aggiunte a Event Tracing in Windows 8.1 e Windows Server 2012 R2.

Funzioni che supportano l'uso di filtri di payload, ambito e procedura dettagliata dello stack usati dalla funzione EnableTraceEx2 e dalle strutture ENABLE_TRACE_PARAMETERS e EVENT_FILTER_DESCRIPTOR per filtrare in base a condizioni specifiche in una sessione di logger. Per altre informazioni, vedere:

Vedere inoltre la documentazione ampiamente modificata per la funzione EnableTraceEx2 e le strutture ENABLE_TRACE_PARAMETERS e EVENT_FILTER_DESCRIPTOR usate da queste funzionalità.

Struttura che definisce un predicato di filtro del payload dell'evento che descrive come filtrare in base a un singolo campo in una sessione di traccia usata dalla nuova funzione TdhCreatePayloadFilter e da una nuova struttura utilizzata dai filtri di individuazione dell'ID evento e della procedura dettagliata dello stack. Per altre informazioni, vedere:

Funzioni che recuperano informazioni sugli eventi presenti nel manifesto del provider. Per altre informazioni, vedere:

Struttura che definisce una matrice di eventi in un manifesto del provider utilizzato dalla nuova funzione TdhEnumerateManifestProviderEvents . Per altre informazioni, vedere:

Windows 8 e Windows Server 2012

Le funzionalità seguenti sono state aggiunte alla traccia eventi in Windows 8 e Windows Server 2012.

Le funzioni che eseguono operazioni su un oggetto di registrazione, forniscono l'analisi del payload degli eventi, forniscono l'esplorazione del provider di traccia, le impostazioni della sessione di traccia eventi di query ed elaborano un file di traccia registrato di nuovo. Per altre informazioni, vedere:

Interfacce che forniscono informazioni al rilogger nel processo di traccia e quando vengono registrati gli eventi, l'accesso ai dati per un evento specifico e l'accesso alle funzionalità di rilogger che consentono la manipolazione dei file del log di traccia eventi (ETL). Per altre informazioni, vedere:

Enumerazioni aggiuntive usate dalle nuove funzioni e interfacce. Per altre informazioni, vedere:

Windows 7 e Windows Server 2008 R2

In questa versione sono state aggiunte le funzionalità seguenti:

  • Possibilità per i provider di definire i filtri nel manifesto. In Windows Vista, i controller potrebbero passare i dati del filtro al provider. Tuttavia, il layout dei dati del filtro non è stato definito nel manifesto, pertanto il provider dovrà usare altri mezzi per fornire la definizione del filtro ai controller. Con questa versione, i provider possono definire la definizione del filtro nel manifesto (vedere l'attributo filters del tipo complesso ProviderType ). I controller possono quindi usare la funzione TdhEnumerateProviderFilters per determinare la definizione del filtro. I provider che usano filtri devono usare la funzione EventWriteEx per scrivere l'evento.
  • Possibilità di usare un singolo buffer per raccogliere gli eventi generati su più processori. L'uso di un singolo buffer elimina la visualizzazione degli eventi non in ordine nei computer con più processori. Per informazioni dettagliate, vedere la modalità di registrazione EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING . Per impostazione predefinita, ETW usa buffer per processore.
  • Possibilità di acquisire un'analisi dello stack per gli eventi. Per abilitare la traccia dello stack per gli eventi del kernel, vedere la funzione TraceSetInformation . Per abilitare la traccia dello stack per gli eventi utente, vedere il flag EVENT_ENABLE_PROPERTY_STACK_TRACE per il membro EnableProperty di ENABLE_TRACE_PARAMETERS.
  • Possibilità di specificare la modalità di registrazione EVENT_TRACE_BUFFERING_MODE o EVENT_TRACE_FILE_MODE_NEWFILE con la modalità di registrazione EVENT_TRACE_PRIVATE_LOGGER_MODE (vedere Costanti della modalità di registrazione).
  • Possibilità di abilitare un provider in modo sincrono. Per impostazione predefinita, i provider sono abilitati in modo asincrono. Per abilitare un provider in modo sincrono, impostare il parametro Timeout di EnableTraceEx2.
  • Possibilità per il controller di richiedere che il provider registri lo stato. Per informazioni dettagliate, vedere il flag EVENT_CONTROL_CODE_CAPTURE_STATE per il parametro ControlCode di EnableTraceEx2.
  • Possibilità per i consumer di formattare i dati degli eventi usando la funzione TdhFormatProperty .
  • Possibilità di decodificare gli eventi manifesti nei computer che non contengono il provider. Per informazioni dettagliate, vedere la funzione TdhLoadManifest .

In questa versione sono state aggiunte le funzioni seguenti:

In questa versione sono state aggiunte le strutture seguenti:

In questa versione sono state aggiunte le enumerazioni seguenti:

In questa versione sono state aggiunte le classi MOF seguenti: