2010-08-20 131 views
15

我想知道是否有人在那里写过键盘设备驱动程序。我知道键盘中断如何工作的基础知识,但并不真正了解所有的细节。它困难吗?一个人太难了?编写键盘设备驱动程序

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

+4

+1为愿意开展真棒hackismo的壮举。 – Mhmmd 2010-08-20 02:17:48

+0

您可以尝试查看是否可以使用捆绑BootCamp的驱动程序。 – Bruno 2010-08-20 02:30:53

+0

我以为BootCamp不是免费的吗? – Albinoswordfish 2010-08-20 18:12:13

回答

11

这里是你需要写一个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“的要求。您可以在虚拟机上运行您的驱动程序,并将内核调试程序连接到它。