yanny
驱动牛犊
驱动牛犊
  • 注册日期2001-08-24
  • 最后登录2001-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3234回复:1

IOCTL_SCSI_PASS_THROUGH

楼主#
更多 发布于:2002-01-17 13:42
typedef struct
{
SCSI_PASS_THROUGH scsicmd;
UCHAR DataBuffer[0x30000];
} IOCTLSTRUCT2000;

IOCTLSTRUCT2000 ioctl;
memset(&ioctl,0,sizeof(IOCTLSTRUCT2000));
ioctl.scsicmd.Length = sizeof(SCSI_PASS_THROUGH;
ioctl.scsicmd.ScsiStatus = 0;
ioctl.scsicmd.PathId = 0;
ioctl.scsicmd.TargetId = 0;
ioctl.scsicmd.Lun = 0;
ioctl.scsicmd.CdbLength = 10;
ioctl.scsicmd.DataIn = SCSI_IOCTL_DATA_OUT;
ioctl.scsicmd.Cdb[0] = 0x25;
ioctl.scsicmd.DataTransferLength = 8;//32;
ioctl.scsicmd.TimeOutValue = 1000;

FindFile();//get hDevice

bDeviceIoControl = DeviceIoControl(
hDevice,
IOCTL_SCSI_PASS_THROUGH,
&ioctl,
sizeof(ioctl),
&ioctl,
sizeof(ioctl),
&dwBytesReturned,
NULL
) ;
在2000下,hDevice是\\\\\\\\H:\\ 一个盘,对fw发送命令,microsoft自己的driver,usb连接。出参数错误。发送不下。好心人帮帮我。
:(
yanny
dazzy
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-08-12
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望10点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-01-18 08:48
typedef struct
{
SCSI_PASS_THROUGH scsicmd;
UCHAR DataBuffer[0x30000];
} IOCTLSTRUCT2000;

IOCTLSTRUCT2000 ioctl;
memset(&ioctl,0,sizeof(IOCTLSTRUCT2000));
ioctl.scsicmd.Length = sizeof(SCSI_PASS_THROUGH;
ioctl.scsicmd.ScsiStatus = 0;
ioctl.scsicmd.PathId = 0;
ioctl.scsicmd.TargetId = 0;
ioctl.scsicmd.Lun = 0;
ioctl.scsicmd.CdbLength = 10;
ioctl.scsicmd.DataIn = SCSI_IOCTL_DATA_OUT;
ioctl.scsicmd.Cdb[0] = 0x25;
ioctl.scsicmd.DataTransferLength = 8;//32;
ioctl.scsicmd.TimeOutValue = 1000;

FindFile();//get hDevice

bDeviceIoControl = DeviceIoControl(
hDevice,
IOCTL_SCSI_PASS_THROUGH,
&ioctl,
sizeof(ioctl),
&ioctl,
sizeof(ioctl),
&dwBytesReturned,
NULL
) ;
在2000下,hDevice是\\\\\\\\H:\\ 一个盘,对fw发送命令,microsoft自己的driver,usb连接。出参数错误。发送不下。好心人帮帮我。
:(


你所给的参数不全,关于IOCTL_SCSI_PASS_THROUGH使用的例子,你可以参见DDK的例子,%DDKDIR%\\src\\storage\\class\\spti,USBSTOR.SYS对IOCTL_SCSI_PASS_THROUGH的参数检查十分严格。
游客

返回顶部