阅读:2535回复:7
如何正确地打开HID键盘
各位大虾帮帮忙,我是一个刚开始写Driver的程序员,请问我如何才能正确地打开一个HID键盘?
目前的情况是这样的: 目标:读/写键盘设备, 所以用下面的代码: 0xffffffff=CreateFile( "\\?\hid#vid_04b4&pid_5202#7&27000b78&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL) 大家可以看到,这是 后返回值是无效的句柄,也就是所函数调用失败,此时的GetLastError值是0x00000005,拒绝访问。 但是我改换打开方式如下以后: 0x00000090=CreateFile( "\\?\hid#vid_04b4&pid_5202#7&27000b78&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}", GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL) 又返回值可见打开是成功的,此时的设备是打开了的,此时的GetLastError值是S_OK; 但是,这又一个问题,就是在我后面的程序里面,调用WriteFile(...)函数的时候函数返回了FALSE,此时的GetLastError值是S_OK 以上就是小弟目前的情况,不知倒是什么问题, 还望各位大虾高抬贵手,帮帮忙~!小生这边厢有里了~! |
|
|
沙发#
发布于:2002-04-25 16:57
我也遇到同样的问题,在98下没问题,2000下就不行了
期待高手现身。。。 |
|
板凳#
发布于:2001-07-18 09:58
又长一见识
|
|
|
地板#
发布于:2001-07-17 17:29
这个我知道。
你write 出去的buf 长度要和设备的 HID Output report 长度加一, buf[0]要放 report ID. 也就是说长度只能和对应 reportID 指定的一样的。 不能多也不能少。 |
|
地下室#
发布于:2001-07-15 21:56
[QUOTE]原本由 matrix 发表
[B]不可以吗?我的理解应该是没有问题的阿 [/B][/QUOTE] 我没有做过这类的东东, 只是记得有些设备因为是标准的, Windows直接提供了API调用. 对于HID,因为不清楚, 所以也想问一下, 长长见识. |
|
|
5楼#
发布于:2001-07-15 21:21
不可以吗?我的理解应该是没有问题的阿
|
|
|
6楼#
发布于:2001-07-15 21:12
HID设备可以这样通讯吗?
|
|
|
7楼#
发布于:2001-07-12 12:53
。。。。。
调用WriteFile(...)函数的时候函数返回了FALSE,此时的GetLastError值是S_FALSE |
|
|