各位大佬,请问在Mac上给USB发送SCSI命令,是使用哪个结构体?SCSICmd_INQUIRY_StandardDataAll还是SCSI_Sense_Data,又怎么实现发送呢?在Linux下会有一个结构体专门处理这事,代码如下:
sg_io_hdr_t p_io_hdr;
memset(&p_io_hdr,0x00,sizeof(sg_io_hdr_t));
p_io_hdr.interface_id = 'S';
p_io_hdr.flags = SG_FLAG_LUN_INHIBIT;
if(aDataIn == DATA_USB_TO_HOST)
p_io_hdr.dxfer_direction = SG_DXFER_FROM_DEV;
else
p_io_hdr.dxfer_direction = SG_DXFER_TO_DEV;
p_io_hdr.cmd_len = aCBDLen; //指向 SCSI 命令的 cmdp 的字节长度
p_io_hdr.cmdp = (unsigned char*)aCBD; //指向将要执行的 SCSI 命令的指针
p_io_hdr.dxfer_len = aDataLen; //数据传输的用户内存的长度
p_io_hdr.dxferp = aData; //指向数据传输时长度至少为 dxfer_len 字节的用户内存的指针
int ret = ioctl(aHandle,SG_IO,&p_io_hdr);
if(ret<0 || p_io_hdr.driver_status != 0)
return -1;
怎么把这段代码用Mac系统上的结构体写出来呢?
来源:oschina
链接:https://my.oschina.net/u/4265014/blog/4481835