2010-08-20 12 views
15

Je me demandais si quelqu'un d'autre avait de l'expérience dans l'écriture de pilotes de périphériques de clavier. Je sais que les bases du fonctionnement des interruptions de clavier ne connaissent pas vraiment les détails de tout. C'est difficile? Trop difficile pour une personne?Ecriture d'un pilote de périphérique de clavier

Je demande cela parce que récemment j'ai acheté un clavier Apple et le pilote Windows ne semble pas reconnaître beaucoup de touches. Aussi, si vous connaissez une solution plus facile à résoudre que d'écrire un pilote, j'apprécierais aussi. (Je l'ai déjà essayé SharpKeys, semble que c'est un problème de pilote Windows qui ne peut pas reconnaître certains codes de balayage)

+4

+1 pour la volonté de se lancer dans un exploit de hackismo impressionnant. – Mhmmd

+0

Vous pouvez essayer de voir s'il est possible d'utiliser les pilotes fournis avec BootCamp. – Bruno

+0

Je pensais que BootCamp n'était pas gratuit? – Albinoswordfish

Répondre

11

Voici ce que vous devez écrire le pilote de périphérique pour Windows:

  • Une compréhension du cadre du pilote WDF (KMDF) et son API (je ne recommande pas WDM)
  • Un deuxième PC (ou Hyper-V) que vous pouvez utiliser pour le débogage du noyau. Télécharger WinDbg, puis à distance le débogage de la deuxième machine. N'essayez pas d'écrire un pilote de périphérique sans un moyen de déboguer.
  • Une spécification complète du logiciel du clavier < -> interface matérielle. Peut-être qu'un expert peut inférer l'interface expérimentalement, mais cela pourrait prendre des années. Je pense que vous auriez plus de chance d'inverser l'ingénierie du pilote sur l'autre plate-forme.

Si vous pouvez trouver la source d'un pilote très similaire ou le pilote sur une autre plate-forme cela pourrait devenir faisable, sinon ...

Si vous êtes intéressé par les pilotes de périphériques, essayez de démarrer en écrivant un logiciel conducteur seulement. Ce sera probablement juste un "jouet", mais vous pouvez faire des choses vraiment bien dans le noyau, alors peut-être que cela vaut la peine d'avoir un pilote de jouet. Vous pouvez communiquer entre un fichier .exe en mode utilisateur et votre pilote avec un IOCTL. Peut-être que vous pouvez éventuellement le mettre à jour dans un pilote émulant un clavier uniquement logiciel, puis essayez de le mettre à niveau dans le pilote de périphérique de clavier que vous voulez.

trouvé un fil sur les pilotes de clavier logiciel uniquement: http://www.osronline.com/showthread.cfm?link=119885

Peut-être que ce qui est utile: http://www.osronline.com/ddkx/intinput/i8042ref_9eb6.htm

Mise à jour: Hyper-V est disponible pour tous les utilisateurs de Windows 8, et devrait éliminer en grande partie la « deuxième PC ". Vous pouvez exécuter votre pilote sur une machine virtuelle et y connecter le débogueur du noyau.