Sviluppare driver di dispositivo Windows per dispositivi di interfaccia umana (HID)
Informazioni su come sviluppare driver di dispositivo Windows per dispositivi di interfaccia umana (HID). HID è una definizione di classe di dispositivo per driver USB generici per supportare dispositivi HID come tastiere, mouse, controller di gioco e così via. Prima di HID, i dispositivi potevano usare solo protocolli rigorosamente definiti per mouse e tastiere. L'innovazione hardware richiede l'overload dei dati in un protocollo esistente o la creazione di hardware non standard con il proprio driver specializzato. HID fornisce il supporto per i dispositivi in modalità di avvio, aggiungendo al tempo tempo di supportare l'innovazione tramite interfacce estendibili, standardizzate e facilmente programmabili.
I dispositivi HID includono schermi alfanumerici, lettori di codice a barre, altoparlanti, cuffie, schermi ausiliari, sensori e molti altri. I fornitori di hardware usano anche HID per i dispositivi proprietari.
HID ha iniziato con USB, ma è stato progettato per essere indipendente dal bus. È stato progettato per dispositivi a bassa latenza, bassa larghezza di banda, ma con flessibilità per specificare la velocità nel trasporto sottostante. L'USB-IF ha ratificato la specifica per HID su USB nel 1996. Il supporto per HID su altri trasporti è stato presto seguito. I dettagli sui trasporti attualmente supportati sono disponibili in Trasporto HID supportato in Windows. I trasporti specifici del fornitore sono consentiti anche tramite driver di trasporto personalizzati.
HID è costituito da due concetti fondamentali, un descrittore di report e report. I report sono i dati effettivi scambiati tra un dispositivo e un client software. Il descrittore di report descrive il formato e indica i dati supportati dal dispositivo.
Le applicazioni e i dispositivi HID scambiano dati tramite report. Esistono tre tipi di report:
Tipo di report | Descrizione |
---|---|
Report di input | I dati inviati dal dispositivo HID all'applicazione, in genere quando lo stato di un controllo cambia. |
Report di output | Dati inviati dall'applicazione al dispositivo HID, ad esempio ai LED su una tastiera. |
Report delle funzionalità | I dati che possono essere letti e scritti manualmente e sono in genere correlati alle informazioni di configurazione. |
Ogni raccolta di livello superiore definita in un descrittore di report può contenere zero o più report di ogni tipo.
Il gruppo di lavoro USB-IF pubblica tabelle di utilizzo HID che fanno parte dei descrittori di report che descrivono le operazioni consentite ai dispositivi HID. Queste tabelle di utilizzo HID contengono un elenco con descrizioni di Utilizzo che descrivono il significato previsto e l'uso di un particolare elemento nel descrittore del report. Ad esempio, un utilizzo viene definito per il pulsante sinistro di un mouse. Il descrittore di report può definire dove in un report un'applicazione può trovare lo stato corrente del pulsante sinistro del mouse. Le tabelle di utilizzo sono suddivise in diversi spazi dei nomi, denominati pagine di utilizzo. Ogni pagina di utilizzo descrive un set di utilizzi correlati che consentono di organizzare il documento. La combinazione di un utilizzo e di una pagina di utilizzo definisce l'ID utilizzo che identifica in modo univoco un utilizzo specifico nelle tabelle di utilizzo.