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 di logger di sistema attualmente configurato consentito dal sistema operativo. Per ulteriori informazioni, vedere i valori TraceProviderBinaryTracking e TraceMaxLoggersQuery dell'enumerazione TRACE_INFO_CLASS, nonché Recupero di dati aggiuntivi di traccia eventi.
ETW può ora filtrare gli eventi in base al nome dell'evento. È anche possibile determinare quali eventi ottengono gli stack acquisiti. Per altre informazioni, vedere i valori EVENT_FILTER_TYPE_EVENT_NAME, EVENT_FILTER_TYPE_STACKWALK_NAME e EVENT_FILTER_TYPE_STACKWALK_LEVEL_KW della struttura EVENT_FILTER_DESCRIPTOR, oltre alle strutture associate EVENT_FILTER_EVENT_NAME e EVENT_FILTER_LEVEL_KW.
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.
Le caratteristiche del fornitore sono state aggiunte per collegare ulteriori dati a una registrazione a un fornitore. Possono essere usati per i provider basati su manifesto o TraceLogging. Attualmente, questo include il supporto per l'aggiunta di un Nome del Provider e/o di un Gruppo di Provider a una registrazione di un singolo provider. I gruppi di provider sono una nuova funzionalità per consentire a più provider ETW di essere controllati in aggregazione 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 stack walk usati dalla funzioneEnableTraceEx2e dalle strutture ENABLE_TRACE_PARAMETERS e EVENT_FILTER_DESCRIPTOR per filtrare in base a condizioni specifiche in una sessione del logger. Per altre informazioni, vedere:
- TdhAggregatePayloadFilters
- TdhCleanupPayloadEventFilterDescriptor
- TdhCreatePayloadFilter
- TdhDeletePayloadFilter
Vedere inoltre la documentazione ampiamente modificata per la funzioneEnableTraceEx2e le strutture ENABLE_TRACE_PARAMETERS e EVENT_FILTER_DESCRIPTOR usate da queste funzionalità.
Struttura che definisce un predicato di filtro del payload dell'evento, descrivendo come filtrare in base a un singolo campo in una sessione di traccia, usata dalla nuova funzione TdhCreatePayloadFilter e una nuova struttura usata dai filtri ID evento e stack walk. 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 usato 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, offrono l'esplorazione del provider di traccia, consentono di interrogare le impostazioni della sessione di tracciamento degli eventi ed elaborano un file di traccia riconnesso. Per altre informazioni, vedere:
- EventSetInformation
- TdhCloseDecodingHandle
- TdhGetDecodingParameter
- TdhGetWppProperty
- TdhGetWppMessage
- TdhLoadManifestFromBinary
- TdhOpenDecodingHandle
- TdhSetDecodingParameter
- TraceQueryInformation
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 ETL (Event Trace Log). 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 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, quindi 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 filtri dell'ProviderType tipo complesso). I controller possono quindi usare il TdhEnumerateProviderFilters funzione 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 multiprocessore. Per informazioni dettagliate, vedere la modalità di logging 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 l'analisi dello stack per gli eventi del kernel, vedere la funzione TraceSetInformation. Per abilitare il tracciamento dello stack per gli eventi utente, consultare il flag di 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 insieme alla modalità EVENT_TRACE_PRIVATE_LOGGER_MODE (vedere le costanti delle modalità di registrazione ).
- Possibilità di abilitare un provider in modo sincrono. Per impostazione predefinita, i provider vengono 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, consultare il flag EVENT_CONTROL_CODE_CAPTURE_STATE per il parametro ControlCode del EnableTraceEx2.
- La capacità per i consumatori 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:
- EnableTraceEx2
- EventWriteEx
- TdhEnumerateProviderFilters
- TdhFormatProperty
- TdhLoadManifest
- TdhUnloadManifest
- TraceSetInformation
In questa versione sono state aggiunte le strutture seguenti:
- CLASSIC_EVENT_ID
- ABILITA_PARAMETRI_DI_TRACCIA
- EVENT_EXTENDED_ITEM_STACK_TRACE32
- EVENT_EXTENDED_ITEM_STACK_TRACE64
- EVENT_FILTER_HEADER
- PROVIDER_FILTER_INFO
In questa versione sono state aggiunte le enumerazioni seguenti:
In questa versione sono state aggiunte le classi MOF seguenti: