编写键盘设备驱动程序

24

我想知道是否有人有编写键盘设备驱动程序的经验。我知道键盘中断的基本原理,但并不了解所有细节。这很难吗?一个人能做到吗?

我问这个问题是因为最近购买了一个苹果键盘,Windows驱动程序似乎无法识别许多按键。如果您知道其他更容易的解决方法而不是编写驱动程序,我也会非常感激。(我已经尝试过SharpKeys,但似乎它是无法识别某些扫描码的Windows驱动程序问题)


你可以尝试使用与 BootCamp 捆绑的驱动程序,看看是否可能。 - Bruno
我以为BootCamp不是免费的? - Albinoswordfish
5
糟糕的建议,任何人怎么可能会学到什么。 - While-E
1个回答

19

以下是编写Windows设备驱动程序所需的内容:

如果你能找到非常相似的驱动程序源代码或其他平台上的驱动程序,则可能会变得可行,否则...

如果你对设备驱动程序感兴趣,请尝试先编写一个仅限软件的驱动程序。它很可能只是一个“玩具”,但你可以在内核中做一些非常棒的事情,因此也许值得拥有一个玩具驱动程序。你可以使用IOCTL在用户模式.exe和你的驱动程序之间进行通信。也许最终你可以将其更新为仅限软件的键盘仿真驱动程序,然后尝试将其升级为你想要的实际键盘设备驱动程序。

发现了有关仅限软件键盘驱动程序的线程: http://www.osronline.com/showthread.cfm?link=119885

也许这很有用:http://www.osronline.com/ddkx/intinput/i8042ref_9eb6.htm

更新:Hyper-V现在适用于所有Windows 8用户,并且应该大部分消除了“第二台电脑”的需求。您可以在虚拟机上运行驱动程序并将内核调试器连接到它。


我认为你最好尝试反向工程驱动程序...。对于华为MateBook X Pro的键盘驱动程序,我该如何做呢?我一直对学习驱动程序编程很感兴趣,所以我想尝试一下这个学习经历,同时也想调整一些我不喜欢本地驱动程序的东西。对于一个具有中级C++知识但没有驱动程序或内核经验的人来说,这会很困难吗? - Kenny83

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接