ywybetter
驱动牛犊
驱动牛犊
  • 注册日期2004-04-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1286回复:4

关于USB驱动的问题,简单驱动作好了之后,上层文件怎么调用呢?

楼主#
更多 发布于:2004-11-18 11:50
我周一才接触到USB驱动的问题

目前,我做了一个简单的驱动,在USBDeviceAttach里面什么的都可以了


我想知道的是,这个驱动我想自己使用,但是USB-KEY插入之后,怎么在上层的程序中调用驱动里面的读写函数操作USB-KEY呢?

最好详细的说一下流程好吗
谢谢了啊
tangtang
驱动牛犊
驱动牛犊
  • 注册日期2004-09-17
  • 最后登录2005-04-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-18 20:57
是流接口的驱动吗?
如果是就可以直接用ReadFile和WriteFile就可以了。
代码如下:
首先:
g_hGenFile=CreateFile(L"GEN1:",
                 GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
然后:
flag=ReadFile(g_hGenFile,pBuffer,dwSizeWant,&dwSizeRead,NULL);
读文件也是相同的。
还有一个函数叫DeviceIoControl,我还没有用过 。
ywybetter
驱动牛犊
驱动牛犊
  • 注册日期2004-04-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-19 08:04
好,我试试看

可以了立即给分

呵呵
tangtang
驱动牛犊
驱动牛犊
  • 注册日期2004-09-17
  • 最后登录2005-04-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-19 16:32
当你的驱动加载完之后,看一下注册表中是否有你的驱动的一些信息,有关信息会在两个地方出现。
只有有了这些信息后,才可以用这几个函数读取驱动成功的。
我当时只是做了一个流接口驱动的架子,但是下层的三个被usbd调用的函数没有写,所以我要在应用程序中用hActive=ActivateDevice(L"Drivers\\Builtin\\GenDrv",0);来实现一个我的driver的instance。调用这个函数后,在注册表中会有相应的一项被写入的。
不过像你说的,你在下层的USBDeviceAttach中应该已经写入这个函数的了所以不用再在自己的应用程序中调用了。
另外,驱动的调用是绝对不可以用LoadLibrary这样调用的。
我也是在摸索中,也得到了wxl_50685330的帮助,在这里我想谢谢他。
大家一起努力。
如果在这方面还有不太明白的地方,可以发邮件给我tanglin_2008@126.com
可以讨论:)
祝好运!
tangtang
驱动牛犊
驱动牛犊
  • 注册日期2004-09-17
  • 最后登录2005-04-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-19 16:40
忘了说,其实DeviceIOControl这个函数在对驱动调用中应该是常用的,而不是ReadFile和WriteFile,当然看你的驱动是如何编写的了:)
游客

返回顶部