dongzai
驱动牛犊
驱动牛犊
  • 注册日期2004-04-04
  • 最后登录2005-02-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1229回复:3

急啊,USB驱动怎么所有的IN功能都不能用了?

楼主#
更多 发布于:2004-05-13 16:04
毕业设计马上就要交了,怎么出这个问题??

NTSTATUS GPSDevice::CMD_REPLY_Handler(KIrp I)
{
    NTSTATUS status = STATUS_SUCCESS;
    PURB purb = m_Endpoint1IN.BuildInterruptTransfer(
        (PCHAR)I.IoctlBuffer(),
        6,
        TRUE,
        NULL,
        NULL,
        TRUE
        );
    status = m_Endpoint1IN.SubmitUrb(purb,NULL,NULL,10);
    delete purb;
         t<<\"STATUS:\"<<status<<\"\\n\";
    I.Information() = 6;
    return status;
}

谁帮着给看看哪有错啊,谢了先。固件没动过,以前还能用,怎么突然间换了2台电脑都不能IN了。OUT功能正常,我向设备发送的数据能被准确接受,但是IN的时候
如果这样写 m_Endpoint1IN.SubmitUrb(purb,NULL,NULL,0); (注:超时=0)
第一次,DEVICE IO RETURN 1F。
   DRIVER MONITOR调试信息显示STATUS:0xc0000001
再发送,就没有反应了,僵死在SUBMIT那了,只能拔掉设备,然后它返回48F。

如果这样写 m_Endpoint1IN.SubmitUrb(purb,NULL,NULL,10); (超时!=0)
发进的数据有错误,在DRIVER MONITOR中调试信息成了STATUS:0x00000xxx忘了,反正就是STATUS_TIMEOUT的值。

5555555555555555555555555555555555
5555555555555555555555555555555555

急呀!!!!!!!!!!!!!

[编辑 -  5/13/04 by  dongzai]
dongzai
驱动牛犊
驱动牛犊
  • 注册日期2004-04-04
  • 最后登录2005-02-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-13 22:35
怎么没人说话啊!5555555

我是2台机器(一个学校的,一个家里的),原来都可以IN,当时的驱动是自己瞎编的,没有什么逻辑,所以决定重新编个结构清晰的。结果发现不能IN了,换了个机器也不行。把固件和驱动和应用程序换成以前的也不行了。

就是SUBMITURB时,僵在那儿了,如果设置了超时就返回SUBMITURB超时(错误0X00000120)。我检查了我的FIRMWARE,开始觉得是它在接到IN令牌时没回复导致主机总线驱动死等。因为以前弄EP0 VENDOR REQUEST时出现过这个错误。可是我一直都没有改动过FIRMWARE。

而且经调试,我发现,我IN的时候,设备并没有发生USB中断。(我用的CYGNAL8051单片机)

555555555555555555555555555

哪位高手给看看我的驱动有没有什么问题??合理不合理??是不是必须要有COMPLETEROUTINE例程??


NTSTATUS GPSDevice::CMD_REPLY_Handler(KIrp I)
{
    NTSTATUS status = STATUS_SUCCESS;
    PURB purb = m_Endpoint1IN.BuildInterruptTransfer(
        (PCHAR)I.IoctlBuffer(),
        6,
        TRUE,
        NULL,
        NULL,
        TRUE
        );
    status = m_Endpoint1IN.SubmitUrb(purb,NULL,NULL,10);
    delete purb;
    t<<\"STATUS:\"<<status<<\"\\n\";
    I.Information() = 6;
    return status;
dongzai
驱动牛犊
驱动牛犊
  • 注册日期2004-04-04
  • 最后登录2005-02-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-14 21:17
哪位高手行行好,帮我看看啊。谢了先,快急疯了!!!
harryliu
驱动牛犊
驱动牛犊
  • 注册日期2008-03-17
  • 最后登录2009-10-04
  • 粉丝1
  • 关注0
  • 积分94分
  • 威望50点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-04-16 10:06
搞出来了么?我也有好多问题……
驱网无线,快乐无限
游客

返回顶部