在调试usb键盘时,由于想的过于简单浪费了不少时间。
      因为在我的系统里加了usb\hid下的东西,鼠标就好用了。然而usb键盘却不能用。分析失误之处就在将两者同等对待了。实际上,对usb鼠标的支持,只要将usb\hid下相应项加进os就行了,但是keybd却不一样。除此之外还要提供基本的键盘处理模块。我遇到的问题不是usb的问题,也就是说加上usb\hid下的相应项之后os就可以接受usb键盘的按键响应了。通过调试也可以证明(public\common\oak\drivers\usb\class\hid\clients\kbdhid\kbdhid.cpp),只有SC(扫描码)是好的,在进行SC到VK的映射的时候出了问题,VK的值一直是0。这让我很是郁闷,难道有什么东西没有加到os中去吗?没折,google吧。一不小心go了ms的新闻组,太幸运了有位兄弟的问题和我的是100%的一样。eng啊,忍!
     结果如下:
2440没有鼠标控制器,因此要加上NOPKEYBD组件。再加入KbdNopUS.dll,不过在os里要rename成kbdmouse.dll。原因在public\common\oak\drivers\keybd\laymgr.reg中,同时要在platform.reg中包含public\common\oak\drivers\keybd\下的那两个.reg文件。
     其实我的理解就是KbdNopUS.dll会去将SC映射成VK然后就是启动Key_event。这里有个地址: [url]http://songtitan.cnblogs.com/archive/2005/08/04/207583.aspx[/url]---介绍wince鼠标键盘驱动的,写的不错。