阅读:3234回复:1
IOCTL_SCSI_PASS_THROUGH
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连接。出参数错误。发送不下。好心人帮帮我。 :( |
|
|
沙发#
发布于:2002-01-18 08:48
typedef struct 你所给的参数不全,关于IOCTL_SCSI_PASS_THROUGH使用的例子,你可以参见DDK的例子,%DDKDIR%\\src\\storage\\class\\spti,USBSTOR.SYS对IOCTL_SCSI_PASS_THROUGH的参数检查十分严格。 |
|