lmingyi
驱动牛犊
驱动牛犊
  • 注册日期2010-10-25
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2406回复:4

急!!!求救!!USB驱动写正常,读被阻塞了.

楼主#
更多 发布于:2010-12-02 14:33
去动是用DDK例程修改的,使用批量读写,异步发送读写请求,写的时候正常,设备能收到写入的数据。读的时候请求被阻塞,当使用
if (!WdfRequestSend(Request, WdfUsbTargetPipeGetIoTarget(pipe), WDF_NO_SEND_OPTIONS))
{
       Ecg_DbgPrint(3, ("ReadWrite Fail"));

        status = WdfRequestGetStatus(Request);
        ASSERT(!NT_SUCCESS(status));
}
发送请求后得不到完成返回。应用程序停止响应进入无限等待状态。用IRP Trace检查请求已经发送到PDO0 USB端口,然后无限等待。用Bus Hound检测不到发送的IRP。

传上源码,请各位大哥给瞧瞧,是什么问题。
qwerty_sz
驱动牛犊
驱动牛犊
  • 注册日期2009-04-20
  • 最后登录2012-06-28
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望121点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-12-03 09:06
兄弟,我现在也在学习USB驱动,我的理解是你的应用程序是不是采用同步方式,试试用异步文件操作呀。
我的驱动更奇怪,写只可以成功写两次,第三次就不成功了,现在都还不知道哪里的问题,搞得非常郁闷。
http://bbs.driverdevelop.com/read.php?tid-122535.html
看我的帖子
eaatcc
禁止发言
禁止发言
  • 注册日期2006-04-21
  • 最后登录2018-12-27
  • 粉丝0
  • 关注0
  • 积分6884分
  • 威望34869点
  • 贡献值0点
  • 好评度24点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2010-12-04 00:46
用户被禁言,该主题自动屏蔽!
lmingyi
驱动牛犊
驱动牛犊
  • 注册日期2010-10-25
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-12-06 09:33
回 2楼(eaatcc) 的帖子
固件没有收到数据,今天用IRP Trace查看发现我的驱动在加载的时候有个Urb请求一直在等待,操作码是IRP_MJ_INTERNAL_DRVICE_CONTROL,处于为决定阶段,针对的端口是USBPDO-0(USBUHCI),
lmingyi
驱动牛犊
驱动牛犊
  • 注册日期2010-10-25
  • 最后登录2011-04-13
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-12-07 11:48
问题已终于解决
谢谢上面朋友的热心帮助,
游客

返回顶部