USB论坛-百合电子工作室USB专题站

 找回密码
 我要注册
搜索
热搜: USB学习板
查看: 4718|回复: 0
打印 上一主题 下一主题

USB HID主机程序不能读数据

[复制链接]

2

主题

0

好友

18

积分

新手上路

Rank: 1

楼主
发表于 2012-6-10 10:17:11 |显示全部楼层
很可能是因为USB本身是用的两个通道实现读和写的,还有一个通道用于控制命令处理,有一些设备就必需使用不同的打开方式,打开三个句柄,一个用来读,一个用来写,一个用来发送控制信息,这个和你的设备以及操作系统都有关系,所以建议不管如何,都按下面的方式来打开,这个网站提供的程序只打开一个句柄,在有些时候是会出问题的。
打开控制端口应该这样打开:

hDeviceHandle = CreateFile( detailData->DevicePath,
0,
FILE_SHARE_READ | FILE_SHARE_WRITE,
(LPSECURITY_ATTRIBUTES)NULL,
OPEN_EXISTING,
0,
NULL);

打开写入端口应该这样:

hWriteHandle = CreateFile(detailData->DevicePath, GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE,
(LPSECURITY_ATTRIBUTES)NULL,
OPEN_EXISTING,
0,
NULL);

打开读取端口应该这样:

hReadHandle = CreateFile(detailData->DevicePath, GENERIC_READ,
FILE_SHARE_READ|FILE_SHARE_WRITE,
(LPSECURITY_ATTRIBUTES)NULL,
OPEN_EXISTING,
0,
NULL);

然后你做不同操作,用不同的句柄就行了。

注意:键盘和鼠标只能用这种方式打开控制端口,并且应用程序只能打开控制端口,获取一些信息,而不能写入控制信息,并且不能以读写方式打开。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要注册

USB开发网 (渝ICP备09006681号-4)

GMT+8, 2024-5-3 21:14 , Processed in 0.052969 second(s), 24 queries .

百合电子工作室版权所有
回顶部