Pilotes de bouton HID
Utilisez le pilote de bouton fourni par Microsoft pour les boutons GPIO ; sinon, implémentez votre pilote qui injecte des données HID dans le système d’exploitation.
Les boutons (Power, Windows, volume et verrouillage de rotation) sont généralement utilisés pour les tâches qui se produisent pendant que le clavier physique n’est pas disponible pour l’utilisateur, sur des facteurs de forme tels que des convertibles ou des ardoises. Les boutons se déclarent sur le système d’exploitation en tant qu’appareils HID en fournissant des descripteurs de rapport de bouton HID. Cela permet au système d’interpréter l’objectif et les événements de ces boutons de manière standardisée. Lorsqu’un état de bouton change, cet événement est mappé à un usage HID. Un minidriver de transport HID signale ces événements aux pilotes de niveau supérieur qui envoient ensuite des détails aux clients HID en mode utilisateur ou en mode noyau.
Pour les boutons d’E/S physiques à usage général (GPIO), le minidriver de transport HID est un pilote intégré fourni par Microsoft qui signale les événements en fonction des interruptions reçues sur les ressources matérielles GPIO définies.
Le pilote intégré ne peut pas traiter un bouton qui n’est pas câblé à une ligne d’interruption. Pour ces boutons, vous devez écrire un pilote qui expose le bouton en tant que bouton HID et signale les modifications d’état apportées au pilote de classe HID (fourni par Microsoft). Votre pilote peut être un pilote source HID ou un pilote de transport HID.
Conseils pour la prise en charge des boutons HID
Voici quelques pointeurs généraux pour vous aider à déterminer l’implémentation que vous devez suivre si vous créez des boutons HID.
Utiliser le pilote de bouton intégré fourni par Microsoft
Si vous implémentez un bouton GPIO, décrivez le bouton dans l’ACPI système afin que Windows puisse charger le pilote intégré, Hidinterrupt.sys, en tant que pilote de bouton qui signale des événements au système d’exploitation.
- Appareil de bouton ACPI
- Comportement du bouton
- Exemples de boutons ACPI pour les éditions Windows 10 Core
Microsoft vous encourage à utiliser les minidrivers de transport en boîte dans la mesure du possible.
Écrire un pilote source HID en mode noyau
Si vous implémentez un bouton non GPIO tel qu’un flux de données au format HID qui doit être injecté par un autre composant logiciel, vous pouvez choisir d’écrire un pilote en mode noyau. À compter de Windows 10, vous pouvez écrire un pilote source HID en appelant des interfaces de programmation qui communiquent avec Virtual HID Framework (VHF) et obtient et définit des rapports HID vers et depuis le pilote de classe HID.
- Comment écrire un pilote source HID qui interagit avec Virtual HID Framework (VHF)
- Informations de référence sur le framework HID virtuel
Vous pouvez également écrire un minidriver de transport HID en mode noyau comme pris en charge par les versions antérieures de Windows. Toutefois, nous vous déconseillons cette approche, car les minidrivers de transport KMDF HID mal écrits peuvent bloquer le système.
Écrire un minidriver HID UMDF
Si vous implémentez un bouton non GPIO, au lieu d’utiliser le modèle précédent d’écriture d’un pilote source HID, vous pouvez écrire un minidriver de transport HID en mode utilisateur. Ces pilotes sont plus faciles à développer que les pilotes en mode noyau et les erreurs dans ce pilote ne boguent pas vérifier l’ensemble du système.
Pilotes Windows universels pour les boutons HID
À compter de Windows 10, les interfaces de programmation de pilotes HID font partie des éditions OneCoreUAP de Windows. En utilisant cet ensemble commun d’interfaces, vous pouvez écrire un pilote de bouton à l’aide des interfaces Virtual HID Framework ou Transport Minidrivers . Ces pilotes s’exécutent sur Windows 10 pour les éditions de bureau (Famille, Professionnel, Entreprise et Éducation) et Windows 10 Mobile, ainsi que d’autres versions de Windows 10.
Pour obtenir des instructions pas à pas, consultez Utilisation d’un fichier INF universel.