Primi passaggi per lo sviluppo di driver client USB
Questa sezione presenta i concetti e gli strumenti di sviluppo dei driver USB. La sezione si applica agli sviluppatori nuovi allo sviluppo di driver che desiderano implementare un driver per un dispositivo USB per cui Microsoft non fornisce un driver integrato. Questi driver sono denominati driver client USB in questa documentazione. Gli argomenti di questa sezione descrivono i concetti di alto livello di USB e forniscono istruzioni dettagliate sull'esecuzione di attività comuni di un driver client USB. Per informazioni dettagliate su questi concetti, vedere Specifiche USB in Documenti USB.
Gli sviluppatori di driver devono avere esperienza di codifica nel linguaggio di programmazione C++ e comprendere i concetti dei puntatori a funzione, delle funzioni di callback e dei gestori eventi. Se si scrive un driver basato su User-Mode Driver Framework, lo sviluppatore deve avere familiarità con C++ e COM.
Percorso di apprendimento per sviluppatori di driver client USB
Leggere la specifica USB 3.2.
- Informazioni sulla specifica del settore e sui diversi componenti (dispositivo, controller host e hub) dell'architettura. È importante comprendere il modello di flusso di dati, il modo in cui l'host e il dispositivo comunicano tra loro e il formato delle richieste previste dal dispositivo.
Ottenere un dispositivo USB di test.
Avere un dispositivo USB e la relativa specifica hardware. La specifica descrive le funzionalità del dispositivo e i comandi del fornitore supportati. Usare la specifica per determinare la funzionalità del driver di dispositivo e le decisioni di progettazione correlate.
Se non si ha familiarità con lo sviluppo di driver USB, usare il kit di apprendimento OSR USB FX2. Il kit è il più adatto per studiare campioni USB inclusi in questo set di documentazione.
Disporre di un dispositivo MICROSOFT USB Test Tool (MUTT). L'hardware MUTT può essere acquistato da JJG Technologies. Il dispositivo non ha installato il firmware. Per installare il firmware, scaricare il pacchetto software MUTT. Per altre informazioni, vedere la documentazione inclusa nel pacchetto.
Studiare il layout del dispositivo USB e i descrittori USB correlati.
- Descrivere le funzionalità del dispositivo leggendo il descrittore di configurazione, i descrittori di interfaccia per ogni impostazione alternativa supportata e i relativi descrittori di endpoint. Usando USBView, lo sviluppatore può esplorare tutti i controller USB e i dispositivi USB connessi e controllare anche la configurazione del dispositivo.
Scegliere un modello di driver per lo sviluppo di un driver client USB
- Determinare se il driver deve essere un driver personalizzato o usare uno dei driver forniti da Microsoft in base alla progettazione del dispositivo di destinazione. Scegliere il modello di driver migliore e descrivere le funzionalità supportate da ogni modello.
Esaminare i concetti relativi allo stack di driver USB e allo sviluppo di driver forniti da Microsoft.
- Driver lato host USB in Windows.
- Concetti per tutti gli sviluppatori di driver.
- Concetti per tutti gli sviluppatori USB.
- Nodi del dispositivo e stack di dispositivi.
- Sviluppo di driver con Windows Driver Foundation scritto da Penny Orwick e Guy Smith. Per altre informazioni, vedere Sviluppo di driver con WDF.
- Esempi di driver USB.
- Comprendere i concetti fondamentali del funzionamento dei driver nei sistemi operativi Windows. Conoscere i concetti fondamentali aiuterà a prendere decisioni di progettazione appropriate e semplificare il processo di sviluppo.
- Distinguere tra i modelli di architettura driver in modalità utente e in modalità kernel.
- Informazioni sul caricamento dei driver e su come Windows organizza i dispositivi Plug and Play (PnP) in un albero di dispositivi e nodi del dispositivo. Lo sviluppatore deve anche comprendere come PnP manager compila gli stack di dispositivi e dove vengono posizionati il driver e i relativi oggetti dispositivo nello stack di dispositivi.
Preparare l'ambiente di sviluppo e debug.
- Installare la versione più recente di Windows Driver Kit (WDK).
- Installare Microsoft Visual Studio.
- Ottenere la configurazione per il debug.
- Assicurarsi che le intestazioni e le librerie richieste da un driver client USB siano disponibili.
- Se si scrive un debug di driver in modalità kernel nei computer host e di destinazione tramite una rete Ethernet, è necessario configurare un cavo USB 2.0 o 3.0 o un cavo modem Null.
- Se si scrive un driver in modalità utente, i debugger in modalità utente disponibili nell'ambiente Microsoft Visual Studio. Lo sviluppatore deve avere familiarità con come connettersi a un processo o avviare un processo nel debugger.
Scrivere il primo driver.
- Come scrivere il primo driver client USB (KMDF).
- Come scrivere il primo driver client USB (UMDF).
- Scrivere, compilare e installare il primo driver client USB usando i modelli USB inclusi in Visual Studio 2012. Lo sviluppatore deve essere in grado di descrivere gli oggetti driver, dispositivo e coda del framework e comprendere come il framework comunica con il driver.
Estendere il driver inviando una richiesta di trasferimento del controllo USB.
- Inviare richieste di controllo standard e comandi fornitore al dispositivo. Per altre informazioni, vedere Come inviare un trasferimento di controllo USB.
Estendere il driver per usare gli oggetti di destinazione di I/O USB WDF per eseguire trasferimenti di dati USB.
- Estendere il driver per eseguire attività comuni, come descritto in Attività comuni per i driver client USB.
Risorse della community per USB
Microsoft Windows USB Core Team Blog
Consultare i post scritti dal team USB di Microsoft. Il blog è incentrato sullo stack di driver USB di Windows che funziona con vari controller host USB e hub USB disponibili nel PC Windows. Una risorsa utile per gli sviluppatori di driver client USB e i progettisti hardware USB comprendono l'implementazione dello stack di driver, risolvono i problemi comuni e spiegano come usare gli strumenti per raccogliere tracce e file di log.
-
Elenco di discussione gestito da OSR Online per sviluppatori di driver in modalità kernel.
Windows Dev-Center per lo sviluppo hardware
Windows Driver Kit, assicurati che il tuo prodotto sia affidabile e compatibile con Windows tramite Windows Hardware Lab Kit, scopri gli esempi di driver di Windows.