Condividi tramite


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

  1. 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.
  2. 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.

  3. 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.
  4. 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.
  5. 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.
  6. Preparare l'ambiente di sviluppo e debug.

  7. Scrivere il primo driver.

  8. 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.
  9. Estendere il driver per usare gli oggetti di destinazione di I/O USB WDF per eseguire trasferimenti di dati USB.

Risorse della community per USB