hid设备的读取

uzlan 2008-04-23 05:32:38
我用ReadFil来读取一个标准hid设备的信息,此设备有两个端点0,1,但我总是读出来的是0端点的数据,请问怎么样才能读取1端点的数据,最好是能提供简单示例代码,谢谢
...全文
325 点赞 收藏 18
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
csjhpp21 2010-03-04
谁有原代码?我搞了2个星期了.晕菜了.
回复
hid设备的读写也有两种实现,一类是用ReadFile和WriteFile,另一类是用
HidD_SetFeature与HidD_GetFeature

这两种都要用CreateFile打开,

CreateFile( DetailData->DevicePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, ( LPSECURITY_ATTRIBUTES )NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL );
回复
cnzdgs 2008-04-30
同步方式也是ReadFile失败吗?错误码是什么?
回复
uzlan 2008-04-30
同步方式试过了
回复
cnzdgs 2008-04-29
同步方式试过了吗?
回复
uzlan 2008-04-29
各位说的没错,0端点一般都是控制和接受pc数据用的,1端点是设备向pc发送数据用的,,我现在就是接受不到由设备发送来的数据,我向设备发送数据正常,问题还未解决,自己定下
回复
yxz_lp 2008-04-28
端点0,1本来就是两个设备,我觉得你还是没打开端点1的设备
回复
一个hid设备如果只有两个端点,0肯定是能读的,否则设备就不能用了,1是否能读,就不知道了,一般是写的。
回复
端点0是读的,1是写的吧。
回复
uzlan 2008-04-27
hDev = CreateFile(
path,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0
);

readfile返回错误代码为997,我们可以直接联系吗,帮我处理这个问题,如果分不够再给你加
msn:meteor_001@hotmail.com
QQ:42973162
回复
cnzdgs 2008-04-27
我没有这方面的代码。
你可以先用同步方式试试看有没有问题。
回复
uzlan 2008-04-27
那我为什么读不到任何数据呢?你有可以读到数据的代码可以参考下吗
回复
cnzdgs 2008-04-27
使用异步方式访问,ERROR_IO_PENDING不是错误,你需要检查OVERLAPPED结构中事件的状态来判断操作是否完成。
回复
cnzdgs 2008-04-27
CreateFile时指定了FILE_FLAG_OVERLAPPED标志,在MSDN中有说明:
Operations that take a significant amount of time to process return ERROR_IO_PENDING.
回复
cnzdgs 2008-04-25
你CreateFile的代码是怎么写的,ReadFile失败后GetLastError返回什么错误码?
回复
uzlan 2008-04-24
cnzdgs :
我尝试过加pipe0,pipe1,0,1等参数,都不管用,都是只能操作到0管道,1管道无法连接,我的设备是一个显示管和一个小键盘通过USB连接到PC,0管道可以操作到显示管,从1管道读取按键信息



jameshooo:
你可能没有搞明白的我意思,我当然是通过枚举找到我的设备再进行读写了,并且已经可以对0管道写入成功,但读不到1管道上的数据,通过Bus Hound可以看到1管道上传来的数据
回复
jameshooo 2008-04-23
一个设备实例只能对应一个端口,ReadFile只能针对一个设备实例操作,当然也只能跟一个端口通信。尝试用SetupDi...系列API来枚举当前正在使用的所有设备实例,找到你想要的设备类别。
回复
cnzdgs 2008-04-23
不知道你读的是个什么样的设备,提供点参考意见。
按常理来说,应该有两个设备名,每个设备名对应一个端点,也可能设备定义了控制码来切换这两个端点。另外,你可以试一下CreateFile时设备名后面加上:1这种形式。
回复
相关推荐
发帖
硬件/系统
创建于2007-09-28

2594

社区成员

VC/MFC 硬件/系统
申请成为版主
帖子事件
创建了帖子
2008-04-23 05:32
社区公告
暂无公告