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 vantaggio 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 si 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 sul lato host USB di Windows in Windows, le specifiche USB ufficiali e le specifiche della classe di dispositivo USB.

Informazioni su Traccia eventi per Windows

Event Tracing for Windows (ETW) è una struttura di traccia a velocità elevata e generica fornita dal sistema operativo. Usa un meccanismo di buffering e registrazione implementato nel kernel per fornire un meccanismo di traccia per gli eventi generati da applicazioni in modalità utente e driver di dispositivo in modalità kernel. Inoltre, ETW offre la possibilità di abilitare e disabilitare dinamicamente la registrazione, che semplifica 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 un disturbo minimo.

ETW è stato introdotto in Windows 2000. Da allora, vari componenti del sistema operativo e del server di base 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 astratta anche nella tecnologia di traccia software WPP (Windows preprocessor), che offre un set di macro facili da usare per tracciare i messaggi in stile printf per il debug durante lo sviluppo.

ETW è stato aggiornato in modo significativo per Windows Vista e Windows 7. Una delle nuove funzionalità più significative è il modello e le API del provider di eventi unificata. In breve, le nuove API unificata 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 Traccia eventi e Traccia eventi per 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 operazione del dispositivo, blocchi di sistema e arresti anomali del sistema.

È stato difficile o impossibile analizzare e eseguire il debug di problemi di dispositivo USB senza accesso diretto al sistema e/o ai dispositivi o in alcuni casi un dump di arresto anomalo del sistema. Anche con l'accesso completo all'hardware e un dump di arresto anomalo, 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 USB ETW in Windows 7

In Windows 7, 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 delle relative limitazioni. 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 in Windows 7. Il livello driver del controller host USB include il driver di porta del controller host (usbport.sys) e i driver miniport (usbehci.sys, usbohci.sys e usbuhci.sys). Il livello del driver dell'hub USB è costituito dal driver dell'hub USB (usbhub.sys). I provider di eventi ETW del driver USB sono inclusi in tutte le edizioni e gli SKU di Windows 7.

  • Eventi dell'hub USB

    Mentre la raccolta eventi USB è abilitata, il provider di eventi dell'hub USB segnala l'aggiunta e la rimozione degli hub USB, gli eventi di riepilogo dei dispositivi 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 eventi USB è abilitata, il provider di eventi 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. I/O registrati 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.

Supporto USB ETW in Windows 8

Windows 8 fornisce uno stack di driver USB per supportare 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 SuperSpeed, alta velocità, full-speed e dispositivi a bassa velocità. Lo stack di driver USB 2.0 è supportato in Windows 8. Attraverso 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 Hub USB3

    Mentre la raccolta eventi USB è abilitata, il provider di eventi USB Hub3 segnala l'aggiunta e la rimozione degli hub USB, gli eventi di riepilogo del dispositivo di tutti gli hub, le modifiche dello stato della porta e gli stati di alimentazione dei dispositivi e degli hub USB. Le modifiche dello stato della porta 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 del computer di stato per dispositivi software, hub e oggetti porta, che forniscono visibilità più approfondita sulla logica del driver.

  • Eventi USB UCX

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

  • Eventi USB xHCI

    Mentre la raccolta 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.

Contenuto della sezione

Argomento Descrizione
Come acquisire una traccia evento USB con Logman Questo argomento fornisce informazioni sull'uso dello strumento Logman per acquisire una traccia evento ETW USB. Logman è uno strumento di traccia integrato in Windows. È possibile usare Logman per acquisire gli eventi in un file di log di traccia eventi.
Uso dei GUID ID attività nelle tracce USB ETW 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 USB ETW in Netmon È possibile visualizzare le tracce degli eventi USB ETW usando Microsoft Network Monitor, noto anche come Netmon. Netmon non analizza automaticamente la traccia. Richiede parser USB ETW. I parser USB ETW sono file di testo scritti in Network Monitor Parser Language (NPL), che descrivono la struttura delle tracce degli eventi USB ETW. I parser definiscono anche colonne e filtri specifici dell'USB. Questi parser rendono Netmon lo strumento migliore per l'analisi delle tracce USB ETW.
Uso di Xperf con USB ETW Questo argomento descrive come usare Xperf con Netmon per analizzare i dati di traccia USB.
USB ETW e Power Management Questo argomento offre una breve panoramica sull'uso di ETW per esaminare lo stato di sospensione selettiva USB e identificare i problemi di efficienza energetica del sistema usando l'utilità Windows PowerCfg.

Uso di USB ETW
Traccia eventi USB per Windows