编写键盘设备驱动程序

时间:2010-08-20 02:12:52

标签: keyboard driver

我想知道是否有人有编写键盘设备驱动程序的经验。我知道键盘中断如何工作的基础知识然而并不真正了解所有内容的细节。它困难吗?一个人太难了?

我问这个是因为最近我购买了一个Apple键盘,Windows驱动程序似乎没有识别出很多键。此外,如果你知道一个更简单的解决方案来解决这个问题,除了编写一个驱动程序,我也会很感激。 (我已经尝试过SharpKeys,看起来它是一个Windows驱动程序问题,它无法识别某些扫描代码)

1 个答案:

答案 0 :(得分:12)

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

  • 了解wdf驱动程序框架(KMDF)及其API(我不建议使用WDM)
  • 可用于内核调试的第二台PC(或Hyper-V)。下载WinDbg,然后远程调试第二台机器。如果没有调试方法,请不要尝试编写设备驱动程序。
  • 键盘软件< - >硬件接口的完整规范。也许专家可以以某种方式通过实验推断界面,但这可能需要很长时间。我认为你可以更好地在另一个平台上对驱动程序进行逆向工程。

如果您可以在另一个平台上找到非常相似的驱动程序或驱动程序的来源,这可能会变得可行,否则......

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

找到一个关于纯软件键盘驱动程序的主题: http://www.osronline.com/showthread.cfm?link=119885

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

更新:Hyper-V适用于所有Windows 8用户,并且应该在很大程度上消除“第二台PC”的要求。您可以在VM上运行驱动程序并将内核调试程序连接到它。

相关问题