Condividi tramite


Panoramica dell'invio di trasferimenti di dati USB nei driver client USB

Gli articoli di questa sezione forniscono informazioni sulle pipe USB e sugli URL per le richieste di I/O e descrivere come un driver client può usare interfacce del driver di dispositivo (DDI) per trasferire i dati da e verso un dispositivo USB.

Un trasferimento avviene ogni volta che i dati vengono spostati tra il controller host e il dispositivo USB. In generale, i trasferimenti USB possono essere categorizzati in trasferimenti di controllo e trasferimenti di dati. Tutti i dispositivi USB devono supportare i trasferimenti di controllo e possono supportare gli endpoint per i trasferimenti di dati. Ogni tipo di trasferimento è associato al tipo di endpoint USB (un buffer nel dispositivo). Il trasferimento dei controlli è associato all'endpoint predefinito e i trasferimenti di dati usano endpoint unidirectionali. I tipi di trasferimento dei dati usano endpoint di interruzione, bulk e isochronous. Lo stack di driver USB crea un canale di comunicazione denominato pipe per ogni endpoint supportato dal dispositivo. Una fine della pipe è l'endpoint del dispositivo. L'altra estremità della pipe è sempre il controller host.

Prima di inviare richieste di I/O al dispositivo, il driver client deve recuperare informazioni su configurazioni, interfacce, endpoint, fornitori e descrittori specifici della classe da un dispositivo USB. Inoltre, il driver deve anche configurare il dispositivo. La configurazione del dispositivo comporta attività come la selezione di una configurazione e un'impostazione alternativa all'interno di ogni interfaccia. Ogni impostazione alternativa può specificare uno o più endpoint USB disponibili per i trasferimenti di dati.

Per informazioni sulla configurazione del dispositivo, vedere Come selezionare una configurazione per un dispositivo USB e Come selezionare un'impostazione alternativa in un'interfaccia USB.

Dopo aver configurato il driver client, il driver ha accesso agli handle della pipe creati dallo stack di driver USB per ogni endpoint nell'impostazione alternativa attualmente selezionata. Per trasferire i dati in un endpoint, un driver client crea una richiesta formattata specificamente per il tipo di richiesta.

Contenuto della sezione

Articolo Descrizione
Come inviare un trasferimento di controllo USB Questo articolo illustra la struttura di un trasferimento di controllo e il modo in cui un driver client deve inviare una richiesta di controllo al dispositivo.
Come enumerare le pipe USB Questo articolo fornisce una panoramica delle pipe USB e descrive i passaggi necessari da un driver client USB per ottenere handle di pipe dallo stack di driver USB.
Come usare il lettore continuo per la lettura dei dati da una pipe USB Questo articolo descrive l'oggetto lettore continuo fornito da WDF. Le procedure in questo articolo forniscono istruzioni dettagliate su come configurare l'oggetto e usarlo per leggere i dati da una pipe USB.
Come inviare richieste di trasferimento bulk USB Questo articolo fornisce una breve panoramica sui trasferimenti bulk USB. Fornisce anche istruzioni dettagliate su come un driver client può inviare e ricevere dati bulk dal dispositivo.
Come aprire e chiudere flussi statici in un endpoint bulk USB Questo articolo illustra la funzionalità dei flussi statici e spiega come un driver client USB può aprire e chiudere i flussi in un endpoint bulk di un dispositivo USB 3.0.
Come trasferire i dati agli endpoint ISochronous Questo articolo descrive come un driver client può creare un blocco di richieste USB per trasferire i dati da e verso endpoint isochrono in un dispositivo USB.
Come inviare mdls concatenati In questo articolo si apprenderà la funzionalità MDLs concatenata nello stack di driver USB e come un driver client può inviare un buffer di trasferimento come catena di strutture MDL .
Come recuperare dagli errori della pipe USB Questo articolo fornisce informazioni sui passaggi che è possibile provare quando un trasferimento dati a una pipe USB ha esito negativo. I meccanismi descritti in questo articolo illustrano le operazioni di interruzione, reimpostazione e ciclo delle porte in blocco, interruzione e pipe isochronous.
Allocazione della larghezza di banda USB Questa sezione fornisce indicazioni sulla gestione attenta della larghezza di banda USB.