阅读:1489回复:2
DeviceIoControl的问题
在写主机与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内容,通过来增加数组长度不可能满足要求) |
|
|
沙发#
发布于:2005-01-14 19:16
好象想到一个办法,,呵呵
不用ucDataBuf来接收~~ |
|
|
板凳#
发布于:2005-01-17 10:13
coolwuya:
你好!我现在也在做一个与USB设备(可做U盘用的MP3)通讯的应用程序,我可以发送SCSI命令成功,但是每次不知道怎么接受firmware传回来的值.请赐教,谢谢! |
|