Condividi tramite


Driver dei pulsanti HID

Usare il driver pulsante fornito da Microsoft per i pulsanti GPIO; in caso contrario, implementare il driver che inserisce i dati HID nel sistema operativo.

I pulsanti (Power, Windows, volume e rotazione) vengono in genere usati per le attività che si verificano mentre la tastiera fisica non è disponibile per l'utente, in base a fattori di forma come convertibili o slates. I pulsanti si dichiarano nel sistema operativo come dispositivi HID fornendo descrittori di report del pulsante HID. Ciò consente al sistema di interpretare lo scopo e gli eventi di tali pulsanti in modo standardizzato. Quando lo stato di un pulsante cambia, tale evento viene mappato a un utilizzo HID. Un minidriver di trasporto HID segnala tali eventi ai driver di livello superiore che quindi inviano i dettagli ai client HID in modalità utente o kernel.

Per i pulsanti GPIO (General Purpose I/O) fisici, il minidriver di trasporto HID è un driver integrato fornito da Microsoft che segnala gli eventi in base agli interrupt ricevuti sulle risorse hardware GPIO definite.

Il driver in-box non può gestire un pulsante non collegato a una linea di interruzione. Per questi pulsanti, è necessario scrivere un driver che espone il pulsante come pulsante HID e segnala le modifiche dello stato al driver di classe HID (fornito da Microsoft). Il driver potrebbe essere un driver di origine HID o un driver di trasporto HID.

Linee guida per il supporto dei pulsanti HID

Ecco alcuni puntatori generali che consentono di decidere quale implementazione seguire se si creano pulsanti HID.

decision chart per l'implementazione dei pulsanti.

Usare il driver pulsante in-box fornito da Microsoft

Descrizione ACPI di un pulsante HID.

Se si implementa un pulsante GPIO, descrivere il pulsante nell'ACPI di sistema in modo che Windows possa caricare il driver in-box, Hidinterrupt.sys, come driver pulsante che segnala gli eventi al sistema operativo.

Microsoft incoraggia l'utente a usare i minidriver trasporto in scatola, quando possibile.

Scrivere un driver di origine HID in modalità kernel

Pulsanti che usano Virtual HID Framework.

Se si implementa un pulsante non GPIO, ad esempio un flusso di dati nel formato HID che deve essere inserito da un altro componente software, è possibile scegliere di scrivere un driver in modalità kernel. A partire da Windows 10, è possibile scrivere un driver di origine HID chiamando interfacce di programmazione che comunicano con Virtual HID Framework (VHF) e ottiene e imposta i report HID su e dal driver di classe HID.

In alternativa, è possibile scrivere un minidriver di trasporto HID in modalità kernel come supportato dalle versioni precedenti di Windows. Tuttavia, non è consigliabile questo approccio perché i minidriver di trasporto HID KMDF scritti male possono arrestare il sistema.

Scrivere un minidriver HID UMDF

Minidriver trasporto HID.

Se si implementa un pulsante non GPIO, anziché usare il modello precedente di scrittura di un driver di origine HID, è possibile scrivere un minidriver di trasporto HID in modalità utente. Questi driver sono più facili da sviluppare rispetto ai driver in modalità kernel ed errori in questo driver non controllano l'intero sistema.

Driver di Windows universali per pulsanti HID

A partire da Windows 10, le interfacce di programmazione dei driver HID fanno parte delle edizioni basate su OneCoreUAP di Windows. Usando tale set comune di interfacce, è possibile scrivere un driver pulsante usando virtual HID Framework o interfacce minidriver di trasporto. Questi driver verranno eseguiti sia in Windows 10 per le edizioni desktop (Home, Pro, Enterprise e Education) che in Windows 10 Mobile, nonché in altre versioni di Windows 10.

Per indicazioni dettagliate, vedere Uso di un file INF universale.

Dispositivo interfaccia umana