hupflv
驱动牛犊
驱动牛犊
  • 注册日期2002-11-11
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:873回复:1

ioctl

楼主#
更多 发布于:2004-09-09 13:39
我现在有一个问题,就是如何发送一个自定义的命令给U盘,我看了别人给我的一段代码(Windows平台的),用的是DeviceIoControl 函数, 其中控制码是IOCTL_SCSI_PASS_THROUGH,但我现在要在Linux环境下实现将这个自定义的命令传送给U盘,我查了一下资料是否是使用如下的操作:
  ioctl(fd, SCSI_IOCTL_SEND_COMMAND, pBuf);
  fd: 是设备的句柄; pBuf:是存放命令的缓冲区;

如果是像我说的这样,由于该自定义的命令被U盘接收到以后,U盘要返回一段数据给我,这段数据放在哪里呢?是不是也放在pBuf中?在Windows环境中DeviceIoControl是可以指示出输出缓存区的,求各位大哥大姐帮帮忙,小弟我先十二万分的谢过了!!
hupflv
驱动牛犊
驱动牛犊
  • 注册日期2002-11-11
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-09 13:52
对了,还忘了说明一下存放命令的缓存区(pBuf)的格式,我是参看资料上的格式的:
struct{
int  inlen;             // 输入的数据的大小
int  outlen;            // 要求输出的数据的大小
char cmd[256];          // 缓冲区
}
游客

返回顶部