Informazioni sulla traccia degli eventi per i driver
Traccia eventi definita
Traccia eventi per Windows (ETW) è un meccanismo efficiente ed efficace per la traccia e la registrazione di eventi generati da applicazioni in modalità utente e driver in modalità kernel. ETW è costituito da tre componenti:
Termine | Descrizione |
---|---|
Provider |
Applicazioni o componenti che generano strumentazione di traccia eventi. |
Controllers |
Applicazioni che avviano, arresta e configurano sessioni di traccia eventi. |
Consumer |
Applicazioni che ricevono sessioni di traccia eventi (in tempo reale) o da un file. |
The ETW Kernel-Mode API
L'API (Application Programming Interface) di ETW fornisce un set di funzioni disponibili per i componenti e i driver in modalità kernel. Traccia eventi WMI e Traccia software WPP usano entrambi ETW. Gli sviluppatori di driver possono usare queste funzioni per registrare il driver come provider ETW. I provider ETW possono generare eventi e possono pubblicarli nel registro eventi di Windows o scrivere gli eventi in una sessione ETW, che viene scritta in un file di traccia o recapitata al consumer in tempo reale. Gli eventi sono entità che descrivono occorrenze interessanti all'interno del sistema e sono definite da un set di attributi determinati dai provider ETW.
ETW viene implementato nel sistema operativo Windows e offre agli sviluppatori un set veloce, affidabile e versatile di funzionalità di traccia eventi con un impatto molto piccolo sulle prestazioni. È possibile abilitare o disabilitare dinamicamente la traccia senza riavviare il computer o ricaricare l'applicazione o il driver. A differenza delle istruzioni di debug aggiunte al codice durante lo sviluppo, è possibile usare ETW nel codice di produzione.
Quando usare traccia eventi
Usare l'API in modalità kernel ETW per pubblicare eventi che possono essere usati dalle applicazioni interessate a eventi amministrativi, operativi e analitici, oltre alla traccia dettagliata necessaria durante lo sviluppo. Usare WPP Software Tracing se si è interessati principalmente a raccogliere dati di traccia per scopi di sviluppo e debug.