wanggang508
驱动小牛
驱动小牛
  • 注册日期2003-08-24
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:894回复:2

ds生成的d12驱动程序read例程的问题!!!

楼主#
更多 发布于:2004-09-28 21:52
我在ds生成的d12的驱动程序中看到这样的语句:
PURB pUrb = m_Endpoint2IN.BuildBulkTransfer(
     Mem,         dwTotalSize,    
TRUE,          
NULL,     FALSE );  
参考书上说 dwTotalSize是传输的字节数,但是我在d12的固件程序中并没看到相应的语句来接收这个参数呀?请问这个参数是不是调用一次ReadFile函数要求读取的数据长度呀?
向各位大侠请教。。。。
多多交流,少走弯路!!!
wanggang508
驱动小牛
驱动小牛
  • 注册日期2003-08-24
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-29 08:36
谢谢楼上的大侠!您的一席话让我受益匪浅,非常感激!!!
我还有一个问题向您请教,因为比较长,我直接发到您邮箱里了,期待您的回复!!先谢谢啦!!
多多交流,少走弯路!!!
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-29 01:12
这个参数来自于上层调用,可能是应用程序或DLL。

通常的做法是上层预先知道固件会发出多少数据,然后在URB中指定相应的大小,同时最好加上超时设置,避免以外发生。

如果上层无法预先知道这个长度,或者说这个长度由下层固件指定,则可以先发送一个Vendor Request来查询先面有多少数据,这样就可以得到数据大小了。

简而言之,USB默认并未在端点0以外提供会话层协议,要自己完成。
A strong man can save himself. A great man can save another.
游客

返回顶部