阅读:2385回复:1
usb scsi 命令问题(多分)
本人开发cf card 应用程序,有的scsi命令 可以返回正确,但是这个命令却不行。请教大虾,帮我看看,是不是命令格式的问题
不甚感激!!!谢谢! EraseAll(char ubMode) { UCHAR vcmdEraseAll[16] = {0xD8,ERASEALL,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0}; if(FI.DeviceNo==16) FI.DeviceNo=0; vcmdEraseAll[2] = ubMode; vcmdEraseAll[6] = 0x40 |FI.DeviceNo; // if(!PioNonData_sign( ICSI_VENDER, ERASEALL, ubMode, 1, 0, 0, (0xa0|FI.DeviceNo))) if(STATUS_OK != IssueScsiCmd(vcmdEraseAll, 0, NULL, 0, NULL, 0,0)) { return FALSE; } if(FI.DeviceNo==0) FI.DeviceNo=16; return TRUE; } int IssueScsiCmd(UCHAR *cmd, int LunID,UCHAR *inBuffer, long inLen, UCHAR *outBuffer, long outLen,long offset) { DWORD length; DWORD returned = (DWORD) -1; int rtn; SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER sptdwb; if (hDevHandle == INVALID_HANDLE_VALUE) return STATUS_NODEVICE; ZeroMemory(&sptdwb, sizeof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER)); sptdwb.sptd.Length = sizeof(SCSI_PASS_THROUGH_DIRECT); sptdwb.sptd.PathId = 0; sptdwb.sptd.TargetId = 1; sptdwb.sptd.Lun = LunID; sptdwb.sptd.CdbLength = 16;//10;//16; // CDB6GENERIC_LENGTH; sptdwb.sptd.SenseInfoLength = 24; if (inLen > 0 && inBuffer != NULL) { sptdwb.sptd.DataIn = SCSI_IOCTL_DATA_IN; sptdwb.sptd.DataTransferLength = inLen; sptdwb.sptd.DataBuffer = inBuffer; } else if (outLen > 0 && outBuffer != NULL) { ASSERT(inLen == 0 && inBuffer == NULL); sptdwb.sptd.DataIn = SCSI_IOCTL_DATA_OUT; sptdwb.sptd.DataTransferLength = outLen; sptdwb.sptd.DataBuffer = outBuffer; } else { ASSERT(outLen == 0 && outBuffer == NULL); sptdwb.sptd.DataIn = SCSI_IOCTL_DATA_IN; sptdwb.sptd.DataTransferLength = 0; sptdwb.sptd.DataBuffer = NULL; } sptdwb.sptd.TimeOutValue = 2; sptdwb.sptd.SenseInfoOffset = offsetof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER, ucSenseBuf); CopyMemory(sptdwb.sptd.Cdb,cmd,16); length = sizeof(SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER); rtn = DeviceIoControl(hDevHandle, IOCTL_SCSI_PASS_THROUGH_DIRECT, &sptdwb, length, &sptdwb, length, &returned, FALSE); if( sptdwb.sptd.ScsiStatus ) return STATUS_ERROR; if (rtn && returned != -1) return STATUS_OK; return STATUS_ERROR; } |
|
|
沙发#
发布于:2004-08-23 12:38
已经解决,谢谢!
有相同问题者,来函咨询:) iwub@etang.com |
|
|