Share via


USB Function Mass Storage Client Driver Transport (Windows Embedded CE 6.0)

1/6/2010

Assuming control/bulk/interrupt transport (CBIT), the USB mass storage class driver transport collects command block, data block 2-tuples sent by the host controller and delivers the command to the USB Function Mass Storage Client Driver SCSI-2 Direct-Access Device Emulator. The proxy between the transport and the SCSI-2 direct-access device emulator provides portability across mass storage class transport schemes. This eliminates the dependency of the transport on a particular emulator by operating on the USB function controller driver, performing transport-specific transfers, extracting commands from transport-specific envelopes, and executing commands on the target medium through the proxy.

To complete a mass storage class request, CBIT uses control transfers for transmitting commands, interrupt transfers for transmitting status, and optional bulk transfers for transmitting data. A mass storage class request can fail for the following reasons:

  • If a command is not supported
  • If a communication error occurs during command data transmission or reception
  • If the execution of the command fails

When receiving a command, the transport determines whether to provide support for the command. For information about determining whether a command is supported by the associated medium, see USB Function Mass Storage Client Driver SCSI-2 Direct-Access Device Emulator.

The following list shows the transport status resulting from unsupported commands, data transmission errors, and command execution failures:

  • If a command is not supported, then the transport stalls the command transport during the status stage of the control transfer.
  • If an error occurs during data transmission or reception, then the transport stalls the data transport.
  • If the execution of the associated command fails, then, the transport indicates failure during the status transport or reports the failure in response to a REQUEST SENSE command.

The only difference between CBIT and bulk-only transport (BOT) is the transfer method and the transfer type for each of the transport phases of the class request.

See Also

Concepts

USB Function Mass Storage Client Driver Development Concepts
USB Function Mass Storage Client Driver