Mac系统上给USB设备发送SCSI自定义命令

旧时模样 提交于 2020-08-10 12:32:05

各位大佬,请问在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系统上的结构体写出来呢?















标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!