How to stop attached USB device / send IRP_MN_REMOVE_DEVICE?

Eric Anderson anderson at freebsd.org
Tue Aug 14 07:30:00 PDT 2007


Sven Hazejager wrote:
>>>> So, the question really is: how to send a IRP_MN_REMOVE_DEVICE
>>>> command?
>>>
>>> `camcontrol da? stop` seemed to do the trick before (5.2.1-R, AFAIR),
>>> but now I'm not sure (looks like it doesn't)
>>
>> sorry, I meant to say that `camcontrol da? stop` does not power down
>> the device anymore; nonetheless, it is probably safe to disconnect it
> 
> No, camcontrol does not support this over USB. Windows XP demonstrates 
> it is technically possible, and I do not believe it is fully safe to 
> disconnect the drive (even when unmounted), as the drive then is not 
> able to park its heads, which it DOES do under XP.
> 
> So, we come back to the original question: how to send an 
> IRP_MN_REMOVE_DEVICE event?


Maybe this helps?

man camcontrol ? :

      cmd         Allows the user to send an arbitrary SCSI CDB to any 
device.
                  The cmd function requires the -c argument to specify 
the CDB.
                  Other arguments are optional, depending on the command 
type.
                  The command and data specification syntax is documented in
                  cam_cdbparse(3).  NOTE: If the CDB specified causes 
data to
                  be transfered to or from the SCSI device in question, you
                  MUST specify either -i or -o.

                  -c cmd [args]      This specifies the SCSI CDB.  CDBs 
may be
                                     6, 10, 12 or 16 bytes.

                  -i len fmt         This specifies the amount of data 
to read,
                                     and how it should be displayed.  If the
                                     format is `-', len bytes of data 
will be
                                     read from the device and written to 
stan-
                                     dard output.

                  -o len fmt [args]  This specifies the amount of data to be
                                     written to a device, and the data 
that is
                                     to be written.  If the format is 
`-', len
                                     bytes of data will be read from 
standard
                                     input and written to the device.



More information about the freebsd-hackers mailing list