yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2016回复:11

对于HID设备来说调用ReadFile();

楼主#
更多 发布于:2004-08-24 10:16
使用了如下函数来完成读写操作以及寻找指定的HID设备:
HidD_GetHidGuid();
SetupDiGetClassDevs();
SetupDiEnumDeviceInterfaces();
SetupDiGetDeviceInterfaceDetail();
CreateFile();
HidD_GetAttributes();
HidD_GetPreparsedData();
HidP_GetCaps();
HidD_FreePreparsedData();
ReadFile();
WriteFile();
我 的 问题是对于HID设备来说调用ReadFile();
WriteFile()是不是就对应设备的 中断读和 中断写???


DeviceIOControl这个函数在HID设备中如何 使用??

最新喜欢:

zxwitsmezxwits...
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
qianjping
驱动牛犊
驱动牛犊
  • 注册日期2004-03-13
  • 最后登录2008-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-24 16:15
楼主,我是个菜鸟,现在还不知道开发HID设备时,应用软件到底是如何让主机和设备联系上的!大侠能指点一下吗?非常感谢!!
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-08-27 10:56
我已经做好了
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
jerry_2002
驱动牛犊
驱动牛犊
  • 注册日期2004-08-04
  • 最后登录2004-10-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-27 17:24
我觉得DeviceIoControl()主要调用驱动程序中DeviceControl()来调用
lovetina
驱动牛犊
驱动牛犊
  • 注册日期2004-07-11
  • 最后登录2006-04-01
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-29 09:45
楼主能否把你的例子工程让我参考一下?先谢谢了!
xionghaoyu@tom.com
gdutchen
驱动牛犊
驱动牛犊
  • 注册日期2004-08-23
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-30 19:52
也给我一份吧,我的能识别USB了,但还不能读和写控制,行吗?只这部分的代码也行呀。gdutchen214@sohu.com
jrmforever
驱动牛犊
驱动牛犊
  • 注册日期2004-07-24
  • 最后登录2010-05-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-08-31 08:08
我也要一份学习学习!!!!


  ruimeng_jia@126.com
zxwitsme
驱动牛犊
驱动牛犊
  • 注册日期2004-08-23
  • 最后登录2006-04-20
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-09-29 13:01
我也在做这个东西,现在进度和楼主差不多
但是我搜索hid设备时候找不到我的u盘
用u盘的guid可以找到device name,然后我打开以后用writefile写数据总是失败.
是不是要先用deviceiocontrol和hid类的驱动程序通信以后才能writefile,楼主一个讨论一下
我的qq:13046591
    msn:zxwitsme@hotmail.com
    email:itsmehust@163.com
YKY8871212
驱动牛犊
驱动牛犊
  • 注册日期2003-07-03
  • 最后登录2007-06-20
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-09-29 13:28
我想用D12和89C52做HID的例子,可是几天下来一点没有进展。能把程序发给我吗?8871212@163.com
fgf1014
驱动牛犊
驱动牛犊
  • 注册日期2003-02-22
  • 最后登录2005-10-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-09-29 17:11
我也在做这个东西,现在进度和楼主差不多
但是我搜索hid设备时候找不到我的u盘
用u盘的guid可以找到device name,然后我打开以后用writefile写数据总是失败.
是不是要先用deviceiocontrol和hid类的驱动程序通信以后才能writefile,楼主一个讨论一下
我的qq:13046591
    msn:zxwitsme@hotmail.com
    email:itsmehust@163.com
 


如果你的CreateFile已经成功说明device已经打开,用writefile写数据失败的原因是对U盘的读写必须是基于块/扇区进行。另外U盘不是hid设备,所以“搜索hid设备时候找不到我的u盘”是很正常的,U盘是mass storage device
zxwitsme
驱动牛犊
驱动牛犊
  • 注册日期2004-08-23
  • 最后登录2006-04-20
  • 粉丝0
  • 关注0
  • 积分68分
  • 威望8点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-09-29 18:00
我的U盘不是用的Flash存储器,而是用的sdram,请问我打开usb的handle以后然后writefile不是直接写道usb buffer里面?不可能直接写道U盘吧
fgf1014
驱动牛犊
驱动牛犊
  • 注册日期2003-02-22
  • 最后登录2005-10-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-09-30 10:17
既然是U盘,那么它就是mass storage device,这种设备的接口遵循SCSI 标准的Direct Access Storage Device协议。无论是flash还是sdram,USB 设备上的介质都使用与SCSI 设备相同的逻辑块方式寻址。我想你的U盘应该是FAT文件系统,你试着读写512字节整数倍的数据量,应该会成功。
游客

返回顶部