petmoses
驱动牛犊
驱动牛犊
  • 注册日期2006-10-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分482分
  • 威望58点
  • 贡献值0点
  • 好评度55点
  • 原创分0分
  • 专家分0分
阅读:1310回复:4

usb驱动,应用程序能够打开设备,但是发送数据的时候堵在了SubmitUrb

楼主#
更多 发布于:2007-11-19 11:11
    是什么原因使得发送数据阻塞啊?,请高人指教。
PURB pUrb = m_Endpoint2OUT.BuildBulkTransfer(
            Mem,//(PVOID)buffer,          // Where is data coming from?
            BufferLength,  // How much data to write?
                FALSE,        // direction (FALSE = OUT)
                NULL,          // Link to next URB
                TRUE,
                NULL
                    );

        if (pUrb != NULL)
        {
        t << "pUrb created "  <<"\n";
        pUrb->UrbBulkOrInterruptTransfer.TransferFlags =
        (USBD_TRANSFER_DIRECTION_OUT | USBD_SHORT_TRANSFER_OK);
        status = m_Endpoint2OUT.SubmitUrb(pUrb, NULL, NULL);//到这里后就死在这里了。????
           if ( NT_SUCCESS(status) )
        {
        dwBytesSent = pUrb->UrbBulkOrInterruptTransfer.TransferBufferLength;

        t << "Write() posted "  << dwTotalSize << " bytes to USB\n";
        }
        else
        {
            t << "Write() failed "  <<"\n";
        }

            delete pUrb;
        }


misssir
驱动牛犊
驱动牛犊
  • 注册日期2007-10-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分143分
  • 威望183点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-11-19 14:54
这是什么程序,用什么写的,用什么编译的,在什么环境下使用?
还是原始社会好 / QQ: 13633292
petmoses
驱动牛犊
驱动牛犊
  • 注册日期2006-10-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分482分
  • 威望58点
  • 贡献值0点
  • 好评度55点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-11-20 09:13
PC端WDM设备驱动程序
gutian98
禁止发言
禁止发言
  • 注册日期2003-01-12
  • 最后登录2016-12-11
  • 粉丝4
  • 关注2
  • 积分760分
  • 威望8026点
  • 贡献值1点
  • 好评度364点
  • 原创分0分
  • 专家分21分
  • 金点子奖
  • 社区居民
地板#
发布于:2007-11-21 11:23
用户被禁言,该主题自动屏蔽!
petmoses
驱动牛犊
驱动牛犊
  • 注册日期2006-10-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分482分
  • 威望58点
  • 贡献值0点
  • 好评度55点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-11-21 14:11
我在固件初始化的时候给某个端点缓冲中填入数据,如
EP2FIFOBUF[0]=0xe3;
EP2FIFOBUF[1]=0xe3;
EP2FIFOBUF[2]=0xe3;
请问这样有效没有?

然后我发读的命令,发现SubmitUrb始终不返回。
端点缓冲中不一定要填满才能读出吧?
是不是初始化填的缓冲区无效?
游客

返回顶部