coolwuya
驱动牛犊
驱动牛犊
  • 注册日期2004-06-29
  • 最后登录2007-08-24
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望21点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
阅读:1489回复:2

DeviceIoControl的问题

楼主#
更多 发布于:2005-01-14 19:08
在写主机与U盘通讯的应用程序时,通过DeviceIoControl发送SCSI指令与U盘通讯,结果发现如果每次读取512字节(就是在构建CBD时设置CBD[8] = 0x01)能成功接收到512字节数据,但如果想读取2个512字节就无法实现,发现SCSI_PASS_THROUGH_WITH_BUFFERS结构体的ucDataBuf只能存放512字节数据, 但DeviceIoControl中返回的读到数据的长度却是我想要的长度(比如如果请求2个page-一个page512字,那么返回的长度会是1104,这个长度是正确的,因为有另外80字节其他数据,但只能从ucDataBuf中获得512字节数据,另外的512字节数据我该怎么得到呢?。
请问高手,是不是用DeviceIoControl发送请求数据多于512字就不能够接收了?只能接收到前512字节数据吗?
如果可以,该如何做?
在此先谢过了。(曾想着试着修改ucDataBuf数组的长度,但后来想想很多SCSI请求一次就请求8个Page内容,通过来增加数组长度不可能满足要求)
USB开发交流
coolwuya
驱动牛犊
驱动牛犊
  • 注册日期2004-06-29
  • 最后登录2007-08-24
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望21点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-01-14 19:16
好象想到一个办法,,呵呵

不用ucDataBuf来接收~~
USB开发交流
liweiqiao
驱动牛犊
驱动牛犊
  • 注册日期2004-10-08
  • 最后登录2007-09-27
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-01-17 10:13
coolwuya:
你好!我现在也在做一个与USB设备(可做U盘用的MP3)通讯的应用程序,我可以发送SCSI命令成功,但是每次不知道怎么接受firmware传回来的值.请赐教,谢谢!
游客

返回顶部