曹延平的回答:ipad 平板上,如果用第三方输入法,虚拟键盘是关不掉的,使用自带的输入法,要关闭虚拟键盘,就要确保您的蓝牙键盘上有虚拟键这个功能,有这个功能就可以,没有的话,就不能了 春天华尔兹的回答:1 、 readfile 的调用不会引起设备的任何反应,即 hid 设备与主机之间的中断 in 传输不与 readfile 打交道。实际上主机会在最大间隔时间(由设备的端点描述符来指定)内轮询设备,发出中断 in 传输的请求。“读取”即意味着从某个 buffer 里面取回数据,实际上这个 buffer 就是 hid 设备驱动中的 buffer 。这个 buffer 的大小可以通过 hidd_setnuminputbuffers 来改变。在 xp 上缺省值是 32 (个报告)。 实贱表明: 是”usb人体输入学设备驱动“会在最大间隔时间(由设备的端点描述符来指定)内轮询设备,发出中断 in 传输的请求。然后将数据收到自已驱动中的 buffer!但readfile也不直接与”usb人体输入学设备驱动“打交道!有兴趣大家可以用bus hound看一下!你只监视”usb人体输入学设备“,你不调用readfile,下位机也会有数据发上来。bus hound可以看到数据。下位机没数据时!你调用readfile,”usb人体输入学设备“,也不会有动作! 而当您监视了!hid compliant device设备,你不readfile,就是”usb人体输入学设备“有接收到数据,hid compliant device设备也不会有数据请求的!只有当你readfile了!hid compliant device设备就会出现一次数据请求!你就能看到hid compliant device的数据。 更细一点的测试是!hid下位机连发了向个报告时(readfile不去读),”usb人体输入学设备驱动“会都接收这些报告数据,然后放在自己的buffer中!接收你调用一次readfile,”hid compliant device驱动“就会向”usb人体输入学设备驱动“请求一次数据,然后它如果和readfile相交成功的话,readfile就会正确读到一个报告数据。你再调用readfile会再读到一个!直到”usb人体输入学设备驱动“收到的数据全部被读完! 现在的我的情况就出现在hid compliant device驱动和readfile相交这块!readfile绝大多数时可以成功读到数据,但总会不定期的有一次不成功! 还有一个怪的现象!readfile好象只是发出了一个windows io请求,而这个windows io请求好象没成功和”hid compliant device驱动“交互。因为从现象上看hid compliant device设备驱动好象没有超时机制!如readfile后 wait用永久等待的方式在等,当出现这种情况程序会卡死在这里永远等待,但当下一次下位机设备发上新的数据时!wait也会结束等待,读出最新的数据。而不成功的那次数据就好象从来没出现过一样,人间蒸发了!这中间到底那块出了问题!是我想知道的! |