Condividi tramite


Driver client HID

Se un minidriver HID fornito dal sistema non supporta la porta o l'autobus di un dispositivo, è necessario un minidriver fornito dal fornitore.

La figura seguente illustra uno stack di driver per un dispositivo HIDClass generico (che potrebbe usare componenti facoltativi e richiesti forniti dal fornitore).

diagramma che illustra uno stack di driver per un dispositivo hidclass generico.

Windows compila lo stack di driver come indicato di seguito:

  • Lo stack di trasporto crea un oggetto dispositivo fisico (PDO) per ogni dispositivo HID collegato e carica il driver di trasporto HID appropriato che a sua volta carica il driver di classe HID.
  • Il driver di classe HID crea un PDO per il TLC . Per i dispositivi complessi con più TLC, il driver di classe HID crea un PDO per ogni TLC e garantisce che l'ID hardware associato al TLC includa un identificatore per rappresentare ogni oggetto dispositivo.
  • Una funzione fornita dal fornitore o un driver di filtro crea un fdO o un filtro DO per una raccolta HID.
  • In alternativa, un'applicazione fornita dal fornitore può aprire il dispositivo usando le API SetupDI* per identificare il dispositivo e quindi le routine supportate da HID per comunicare con il dispositivo. Si dice che tali dispositivi vengano aperti in modalità RAW.

Se le operazioni minidriver fornite dal sistema non supportano un dispositivo, è necessario un minidriver HID fornito dal fornitore. È possibile implementare questo minidriver in due modi:

  • Driver client HID
  • Accesso diretto alle applicazioni HID

Se un fornitore fornisce un driver (diverso da un minidriver), tale driver:

  • Deve essere conforme ai requisiti minimi per il driver Windows. Idealmente, deve essere basato sul framework del driver in modalità utente (UMDF) o sul framework del driver in modalità kernel (KMDF). Una soluzione meno ideale consiste nel creare un driver di funzione WDM, come descritto in Modello di driver windows.
  • In genere supporta un'interfaccia del dispositivo definita dal fornitore. Vedere Classi di interfaccia dispositivo. I driver di livello superiore o le applicazioni in modalità utente usano l'interfaccia personalizzata per accedere ai dispositivi gestiti dal driver del fornitore. L'interfaccia personalizzata potrebbe aggiungere funzionalità o, ad esempio, semplificare l'interfaccia al driver di classe HID.

Se il driver non è un driver di funzione o un driver di filtro, può usare Plug and Play notifica per trovare le raccolte HID. Dopo aver trovato una raccolta, il driver apre la raccolta e lo gestisce nello stesso modo di un driver di funzione o filtro.

Nota importante:

  • Se un driver di funzione fornito dal fornitore crea un oggetto FDO o un filtro DO per una raccolta HID, non deve utilizzare il campo FsContext di FILE_OBJECT per archiviare dati specifici dell'oggetto file. Il campo FsContext è riservato per il driver di classe HID. Se un altro driver nello stack deve archiviare dati di contesto specifici dell'oggetto file, deve usare invece il campo FsContext2.
  • Se sono presenti più dispositivi collegati al PDO, non esiste alcun meccanismo predefinito per determinare quale dispositivo può usare il campo FsContext2.