riptide
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2008-02-19
  • 粉丝0
  • 关注0
  • 积分101分
  • 威望12点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1467回复:2

USB驱动中关于READ的问题,大家都来看看啊,急啊!

楼主#
更多 发布于:2005-06-26 22:55
  我现在用DRIVERSTUDIO写了一个USB的驱动,写功能正常,但现在在读操作的驱动中,当建立URB时计算机就REBOOT了,这是为什么呀,大家来帮忙啊.我的设备用的是D12,设置为D12的端口2为BULK输入与输出,我在驱动中让Pipe00作为bulk输出,而Pipe01作为bulk输入.

……
       Pipe00.Initialize(m_Lower, 2, 64);      
       Pipe01.Initialize(m_Lower, 82, 64);
……

       ULONG readSize = I.ReadSize(CURRENT);
       ULONG bytesRead = 0;
       ULONG dwMaxSize = Pipe01.MaximumTransferSize();
       T.Trace(TraceInfo,__FUNCTION__" hjl. readSize= %d\n", readSize);
       if(readSize > dwMaxSize){
              ASSERT(dwMaxSize);
              readSize = dwMaxSize;
       }

    PURB pUrb = Pipe01.BuildBulkTransfer(
              Mem,              // Where is data coming from?
              readSize,              // How much data to read?
              TRUE,                     // direction (TRUE = IN)
              NULL,                     // Link to next URB
              TRUE,//FALSE
              NULL
              );
……
在上述代码中,当执行ULONG dwMaxSize = Pipe01.MaximumTransferSize();语句时也会使计算机reboot,看起来现在好象是当操作Pipe01(输入端口)时就会重起,晕死了啊

最新喜欢:

r2109twr2109t...
Riptide
riptide
驱动牛犊
驱动牛犊
  • 注册日期2002-07-12
  • 最后登录2008-02-19
  • 粉丝0
  • 关注0
  • 积分101分
  • 威望12点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-06-27 16:22
没人回答啊,高手们帮帮我啊!!!
请各位不吝指教哦,先谢谢了!
Riptide
dawnss
驱动牛犊
驱动牛犊
  • 注册日期2003-10-06
  • 最后登录2011-06-17
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望6点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-06-30 08:38
在读时你要根据RING3所读数据的大小,对所读信息的长度进行设置,目的是让设备管理器知道。
大家好
游客

返回顶部