gmmxrr
驱动牛犊
驱动牛犊
  • 注册日期2003-04-11
  • 最后登录2005-10-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1219回复:2

高手请指点:为什么PC读设备数据时有时返回缓冲区溢出错误?!

楼主#
更多 发布于:2004-05-26 16:31
驱动中调用WD_UsbTransfer()函数时有时返回缓冲区溢出错误.请问是指哪里的缓冲区?郁闷!
gmmxrr
驱动牛犊
驱动牛犊
  • 注册日期2003-04-11
  • 最后登录2005-10-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-05-26 16:33
    其中部分代码如下:

    WD_USB_TRANSFER transfer;

    BZERO(transfer);
    transfer.dwPipe = 0x82;
    transfer.dwBytes = dwSize;//缓冲区400K字节
    transfer.fRead = TRUE;
    transfer.pBuffer = pBuffer;//缓冲区指针
    transfer.hDevice = hSEALCONTRL->hDevice;
    transfer.dwTimeout = 5000;
    WD_UsbTransfer(hSEALCONTRL->hWD, &transfer);
lilo
驱动牛犊
驱动牛犊
  • 注册日期2001-05-24
  • 最后登录2008-08-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-12-11 08:49
你传入的缓冲区太大了,超过了WD_UsbTransfer内部预先分配的缓冲区大小。建议减小缓冲区大小,或者使用相应的n版本(像StrCpy() 和StrnCpy()的关系)。
游客

返回顶部