xxlangyun
驱动小牛
驱动小牛
  • 注册日期2004-11-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分272分
  • 威望58点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:2061回复:12

如何开辟一个线程实现BULK IN的不断的读取USB的数据啊 ?如何轮训USB设备?

楼主#
更多 发布于:2005-07-14 17:25
  各位同盟:
我想用驱动在内核里面开一个线程实现BULK IN不断读取数据,然后存到一个队列里面(前提条件是队列有效就能不断的读取,队列满就处于挂起状态),如何实现这样一个线程呢?
可以参考哪些资料呢?谁有这样的例子麻烦发一份啊 ,谢谢了!

简单来讲就是如何在驱动里面轮询USB DEVICE,要求速度尽可能的快和尽量少占用系统的资源。。。。。。。
wwsxxz
驱动牛犊
驱动牛犊
  • 注册日期2002-01-14
  • 最后登录2007-11-28
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-07-14 18:27
我也想知道!
xxlangyun
驱动小牛
驱动小牛
  • 注册日期2004-11-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分272分
  • 威望58点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-07-15 09:17
本人用想用KTIMEDCALLBACK来实现,但是以进去就重启,郁闷啊,版主给点意见啊。
xxlangyun
驱动小牛
驱动小牛
  • 注册日期2004-11-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分272分
  • 威望58点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-17 07:15
没人遇到这个问题吗?
xxlangyun
驱动小牛
驱动小牛
  • 注册日期2004-11-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分272分
  • 威望58点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-07-18 14:33
在驱动里面不需要应用程序干预的情况下如何轮询USB设备啊?
Shentu
驱动小牛
驱动小牛
  • 注册日期2004-04-05
  • 最后登录2011-01-24
  • 粉丝0
  • 关注0
  • 积分234分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-07-18 15:27
用完成例程,IoSetCompleteRoutine()等等
xxlangyun
驱动小牛
驱动小牛
  • 注册日期2004-11-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分272分
  • 威望58点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-07-19 09:14
五楼的兄弟能不能给出个例子啊?如果是用DS写的驱动呢?
xxlangyun
驱动小牛
驱动小牛
  • 注册日期2004-11-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分272分
  • 威望58点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-07-19 09:17
还有一个速度的问题,理论上使用IoSetCompleteRoutine()发送IN包的频率是多大?我的期望速度至少是30MByte/s.请问能做到吗?
xxlangyun
驱动小牛
驱动小牛
  • 注册日期2004-11-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分272分
  • 威望58点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-07-20 09:41
这个问题摆了好久了 !!!!!真没人感兴趣吗 ?
Shentu
驱动小牛
驱动小牛
  • 注册日期2004-04-05
  • 最后登录2011-01-24
  • 粉丝0
  • 关注0
  • 积分234分
  • 威望24点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-07-22 10:40
下面是引用xxlangyun于2005-07-19 09:17发表的:
还有一个速度的问题,理论上使用IoSetCompleteRoutine()发送IN包的频率是多大?我的期望速度至少是30MByte/s.请问能做到吗?


几天没有上论坛,让你等急了,^_^
达到这个速度好像比较困难,我记得用等时传输也只能达到2XMB/s,bulk应该会更慢一点了。不过你可以自己try一下~~
isolator
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-07-22 17:04
Walter Oney的书上不是有不断读的例子吗?
xxlangyun
驱动小牛
驱动小牛
  • 注册日期2004-11-22
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分272分
  • 威望58点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-07-23 10:13
哪Walter Oney的书下载?楼上能否把代码贴出来看看?或者是把书贴上来?
xiaorain
驱动牛犊
驱动牛犊
  • 注册日期2003-04-21
  • 最后登录2005-11-05
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-07-28 20:45
在线程函数里,判断上一次发送下去的读irp是否已经完成,如果完成,再构造读IRP,并发送下去,由于线程函数被不断的由系统调用,于是可以实现持续的读.
游客

返回顶部