Condividi tramite


Panoramica della traccia degli eventi USB per Windows

Questo argomento fornisce informazioni per gli sviluppatori di driver client sulle funzionalità di traccia e registrazione per il bus seriale universale (USB). Queste informazioni vengono fornite a beneficio di coloro che sviluppano ed eseggono dispositivi USB. Include informazioni su come installare gli strumenti, creare file di traccia e analizzare gli eventi in un file di traccia USB. L'argomento presuppone che tu abbia una conoscenza completa dell'ecosistema USB e dell'hardware necessari per usare correttamente le funzionalità di traccia e registrazione USB.

Per interpretare le tracce degli eventi, è necessario comprendere anche i driver lato host USB di Windows in Windows, le specifiche USB ufficiali e le specifiche della classe di dispositivo USB.

Informazioni sulla traccia degli eventi per Windows

Event Tracing for Windows (ETW) è una funzionalità di traccia generica ad alta velocità fornita dal sistema operativo. Usa un meccanismo di memorizzazione nel buffer e registrazione implementato nel kernel per fornire un meccanismo di traccia per gli eventi generati dalle applicazioni in modalità utente e dai driver di dispositivo in modalità kernel. Inoltre, ETW offre la possibilità di abilitare e disabilitare in modo dinamico la registrazione, semplificando l'esecuzione di traccia dettagliata negli ambienti di produzione senza richiedere riavvii o riavvii dell'applicazione. Il meccanismo di registrazione usa buffer per processore scritti su disco da un thread writer asincrono. Questo buffering consente alle applicazioni server su larga scala di scrivere eventi con disturbo minimo.

ETW è stato introdotto in Windows 2000. Da allora, vari componenti principali del sistema operativo e del server hanno adottato ETW per instrumentare le loro attività. ETW è ora una delle principali tecnologie di strumentazione nelle piattaforme Windows. Un numero crescente di applicazioni di terze parti usa ETW per la strumentazione e alcuni sfruttano gli eventi forniti da Windows. ETW è stato anche astratti nella tecnologia di traccia software WPP (Preprocessore Windows), che fornisce un set di macro facili da usare per tracciare messaggi in stile printf per il debug durante lo sviluppo.

ETW è stato notevolmente aggiornato per Windows Vista e Windows 7. Una delle nuove funzionalità più significative è il modello di provider di eventi unificato e le API. In breve, le nuove API unificate combinano le tracce di registrazione e la scrittura nel Visualizzatore eventi in un meccanismo coerente e facile da usare per i provider di eventi. Allo stesso tempo, sono state aggiunte diverse nuove funzionalità a ETW per migliorare le esperienze degli sviluppatori e degli utenti finali.

Per altre informazioni su ETW e WPP, vedere Event Tracing and Event Tracing for Windows (ETW).

Supporto USB per la registrazione ETW

USB è uno dei mezzi più diffusi per connettere una varietà sempre crescente di dispositivi periferici ai PC. C'è una base molto grande installata di PC host USB e dispositivi periferiche USB, e fornitori di sistemi, fornitori di dispositivi e utenti finali si aspettano e richiedono che i dispositivi USB funzionino perfettamente a livello di sistema e dispositivo.

La grande base installata e la proliferazione di dispositivi USB hanno scoperto problemi di compatibilità tra lo stack software USB di Windows, il controller host USB e i dispositivi USB. Questi problemi di compatibilità causano problemi per i clienti, ad esempio errori di funzionamento del dispositivo, blocchi di sistema e arresti anomali del sistema.

È stato difficile o impossibile analizzare ed eseguire il debug dei problemi dei dispositivi USB senza accesso diretto al sistema e/o ai dispositivi o in alcuni casi un dump di arresto anomalo del sistema. Anche con accesso completo all'hardware e un dump di arresto anomalo del sistema, l'estrazione delle informazioni pertinenti è stata una tecnica a elevato utilizzo di tempo, nota solo da alcuni sviluppatori di driver USB di base. È possibile eseguire il debug di problemi USB usando analizzatori hardware o software, ma sono molto costosi e sono disponibili solo una piccola percentuale di professionisti.

Supporto ETW USB

ETW fornisce un meccanismo di registrazione eventi che lo stack di driver USB può sfruttare per facilitare l'analisi, la diagnosi e il debug di problemi correlati a USB. La registrazione eventi ETW dello stack di driver USB supporta la maggior parte o tutte le funzionalità di debug fornite dal meccanismo di registrazione ad hoc esistente nello stack di driver USB, senza alcuna limitazione. Ciò si traduce in facilità di debug di problemi correlati a USB, che dovrebbero fornire uno stack di driver USB più affidabile a lungo termine.

È stata aggiunta la registrazione ETW ai driver del controller host USB e al driver dell'hub USB. Il livello driver del controller host USB include il driver porta del controller host (usbport.sys) e i driver miniport (usbehci.sys, usbohci.sys e usbuhci.sys). Il livello driver dell'hub USB è costituito dal driver dell'hub USB (usbhub.sys).

  • Eventi dell'hub USB

    Mentre la raccolta di eventi USB è abilitata, il provider di eventi dell'hub USB segnala l'aggiunta e la rimozione di hub USB, gli eventi di riepilogo del dispositivo di tutti gli hub e le modifiche dello stato della porta. È possibile usare questi eventi per determinare la causa radice della maggior parte degli errori di enumerazione del dispositivo.

  • Eventi porta USB

    Mentre la raccolta di eventi USB è abilitata, il provider di eventi della porta USB segnala I/O dai driver client, l'apertura e la chiusura degli endpoint del dispositivo e transizioni di stato miniport, ad esempio l'avvio e l'arresto miniport. Le operazioni di I/O registrate includono richieste per lo stato delle porte USB fisiche. Le transizioni di stato sulle porte USB fisiche sono uno degli iniziatori chiave dell'attività nello stack di driver USB principale.

Windows offre uno stack di driver USB per supportare i dispositivi USB 3.0. Lo stack di driver USB 3.0 fornito da Microsoft è costituito da tre driver: Usbxhci.sys, Ucx01000.sys e Usbhub3.sys. Tutti e tre i driver interagiscono per aggiungere il supporto nativo a Windows per la maggior parte dei controller host USB 3.0. Il nuovo stack di driver supporta i dispositivi SuperSpeed, ad alta velocità, ad alta velocità e a bassa velocità. Tramite le tracce degli eventi, lo stack di driver USB 3.0 offre una visualizzazione dell'attività con granularità fine del controller host e di tutti i dispositivi connessi.

  • Eventi di Hub3 USB

    Mentre la raccolta di eventi USB è abilitata, il provider di eventi usb Hub3 segnala l'aggiunta e la rimozione di hub USB, gli eventi di riepilogo dei dispositivi di tutti gli hub, le modifiche dello stato delle porte e gli stati di alimentazione dei dispositivi USB e degli hub. Le modifiche dello stato delle porte sono transizioni di stato sulle porte USB fisiche e sono uno degli iniziatori chiave dell'attività nello stack di driver USB principale. Hub3 segnala le fasi del processo di enumerazione, che puntano alla causa radice della maggior parte degli errori di enumerazione del dispositivo. Con la parola chiave StateMachine abilitata, Hub3 segnala l'attività interna della macchina a stati per gli oggetti dispositivo software, hub e porta, che offrono visibilità più approfondita sulla logica del driver.

  • Eventi UCX USB

    Mentre la raccolta di eventi USB è abilitata, il provider di eventi UCX USB segnala I/O dai driver client e l'apertura e la chiusura degli endpoint e dei flussi endpoint del dispositivo. Con la parola chiave StateMachine abilitata, UCX segnala l'attività interna della macchina a stati per i controller host e gli oggetti endpoint, che offrono una visibilità più approfondita sulla logica del driver.

  • Eventi xHCI USB

    Mentre la raccolta di eventi USB è abilitata, il provider di eventi USB xHCI segnala le proprietà dei controller xHCI del sistema e i dettagli di basso livello dell'operazione xHCI. xHCI segnala le richieste di comando inviate e completate dall'hardware xHCI, inclusi i codici di completamento specifici di xHCI.

In questa sezione

Argomento Descrizione
Come acquisire una traccia di eventi USB con Logman In questo argomento vengono fornite informazioni sull'uso dello strumento Logman per acquisire una traccia di eventi ETW USB. Logman è uno strumento di traccia integrato in Windows. È possibile usare Logman per acquisire eventi in un file di log di traccia eventi.
Uso dei GUID ID attività nelle tracce ETW USB In questo argomento vengono fornite informazioni sui GUID ID attività, su come aggiungere tali GUID nei provider di traccia eventi e visualizzarli in Netmon.
Tracce ETW USB in Netmon È possibile visualizzare tracce di eventi ETW USB usando Microsoft Network Monitor, detto anche Netmon. Netmon non analizza automaticamente la traccia. Richiede parser ETW USB. I parser ETW USB sono file di testo, scritti in Network Monitor Parser Language (NPL), che descrivono la struttura delle tracce di eventi ETW USB. I parser definiscono anche colonne e filtri specifici dell'USB. Questi parser rendono Netmon lo strumento migliore per l'analisi delle tracce ETW USB.
Uso di Xperf con USB ETW Questo argomento descrive come usare Xperf con Netmon per analizzare i dati di traccia USB.
Usb ETW e risparmio energia Questo argomento fornisce una breve panoramica sull'uso di ETW per esaminare lo stato di sospensione selettiva USB e identificare i problemi di efficienza energetica del sistema tramite l'utilità Windows PowerCfg.