Condividi tramite


Interfacce UMDF 1.x specifiche di USB

Avviso

UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2.

Gli esempi di UMDF 1 archiviati sono disponibili nell'aggiornamento degli esempi di driver di Windows 11, versione 22H2 - maggio 2022.

Per altre info, vedi Introduzione a UMDF.

Un dispositivo USB può avere una o più configurazioni. Ogni configurazione può avere una o più interfacce. Ogni interfaccia è associata a una o più impostazioni alternative e ogni impostazione alternativa definisce uno o più endpoint. Un endpoint rappresenta un buffer nell'hardware del dispositivo.

Una pipe è un'astrazione software di una connessione tra il controller host e un endpoint nell'impostazione alternativa corrente. Una pipe può essere una destinazione per l'I/O ed è esposta in UMDF dall'interfaccia IWDFUsbTargetPipe .

Le interfacce UMDF specifiche di USB si basano sull'architettura WinUSB . Per impostazione predefinita, WinUSB consente l'accesso solo alla prima configurazione di un dispositivo di configurazione multiplo. Pertanto, l'interfaccia WinUSB non espone la possibilità di inviare una richiesta di configurazione select. Di conseguenza, la funzionalità di destinazione di I/O in UMDF non supporta la selezione di alcuna configurazione del dispositivo diversa dalla prima.

Le interfacce UMDF specifiche dell'USB hanno una gerarchia di oggetti simile a quella del modello USB generale. Un driver UMDF crea un oggetto dispositivo di destinazione, esposto dall'interfaccia IWDFUsbTargetDevice . Il driver può quindi usare i metodi di IWDFUsbTargetDevice per accedere alle interfacce USB, esposte da istanze di IWDFUsbInterface. Il driver può chiamare i metodi IWDFUsbInterface per modificare le impostazioni e gli endpoint.

La tabella seguente illustra la gerarchia dell'interfaccia UMDF specifica per USB:

Interfaccia UMDF specifica usb Derivato da
IWDFUsbTargetDevice IWDFIoTarget
IWDFUsbInterface IWDFObject
IWDFUsbTargetPipe IWDFIoTarget

Le interfacce IWDFUsbTargetDevice e IWDFUsbTargetPipe derivano dall'interfaccia IWDFIoTarget e quindi espongono oggetti di destinazione I/O. L'interfaccia IWDFUsbInterface non deriva da IWDFIoTarget (IWDFUsbInterface deriva dall'interfaccia IWDFObject ) e pertanto non espone un oggetto di destinazione I/O. Qualsiasi I/O inviato per individuare e modificare i dettagli dell'interfaccia viene inviato al dispositivo di destinazione.

Per istruzioni dettagliate sulla scrittura di un semplice driver client USB basato su UMDF, vedi Come scrivere il primo driver client USB (UMDF).

Per informazioni sul codice sorgente necessario per un driver client USB basato su UMDF, vedere Informazioni sulla struttura del codice del driver client USB (UMDF).