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.
Usare il driver pulsante in-box fornito da Microsoft
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.
- Dispositivo del pulsante ACPI
- Comportamento dei pulsanti
- Pulsanti di esempio ACPI per Windows 10 Core Edition
Microsoft incoraggia l'utente a usare i minidriver trasporto in scatola, quando possibile.
Scrivere un driver di origine HID in modalità kernel
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.
- Come scrivere un driver di origine HID che interagisce con Virtual HID Framework (VHF)
- Informazioni di riferimento sul framework HID virtuale
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
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.
- Creazione di minidriver HID di UMDF
- IOCTR hid di UMDF"
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.