Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-6591

usbstor: Toshiba STOR.E ALU 2S hard disk (with virtual CD drive) requires SCSIOP_MECHANISM_STATUS

    XMLWordPrintable

Details

    Description

      Created an attachment (id=8072)
      Implement generic USBSTOR_SendUnknownRequest and use it for SCSIOP_MECHANISM_STATUS

      My USB3 hard disk "Toshiba STOR.E ALU 2S" provides a virtual CD drive with documentation on it.

      Attaching this to ROS leads to a debug break in USBSTOR_HandleExecuteSCSI due to the unimplemented operation code 0xBD (SCSIOP_MECHANISM_STATUS) – which is sent by cdrom.sys's IsThisAnAtapiChanger.

      I'm not quite sure why USBStor has to explicitly handle every SRB, as it seems to me that they can just be sent to the device.
      Linux's usb_stor_Bulk_transport (drivers/usb/storage/transport.c) seems to support this theory, as it simply does:
      memcpy(bcb->CDB, srb->cmnd, bcb->Length);

      I've implemented a generic handler to that effect (-> attached patch).
      But that results in STATUS_INFO_LENGTH_MISMATCH apparently (see comment 1), and I don't really know what I'm doing anyway.

      I might try with an actual CD drive later to see if it behaves the same.

      Attachments

        1. usbstor.log
          256 kB
          ThFabba
        2. usbstor-mech-status.patch
          2 kB
          ThFabba
        3. usbstor-mech-status-59086.log
          132 kB
          ThFabba
        4. usbstor-mech-status-59086-withpatch.log
          260 kB
          ThFabba

        Activity

          People

            j_anderw Johannes Anderwald
            ThFabba ThFabba
            Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: