Composite device, hiding MSD

Hello,

I’m developing a composite USB device where the mass storage feature can be
enabled or disabled. I’d like to ensure that the device has no drive
letter when
the feature is disabled. What would I have to send/reply with to
convince Windows
to do this? Replying with the SCSI KCQ of ‘not ready, medium not
present’ gives the
usual removable drive appearance. My thought so far is to just pretend
to be a
one or two sector obscure-OS partition so that Windows assigns no drive
letter yet
doesn’t offer to format the fake drive. It would work, but really is
awful :slight_smile:

Since it also acts as a USB serial converter (among other things), I
can’t just switch
PIDs/serial numbers as that would give them a different COM port.
Changing the
descriptor would work but Windows seems to cache some of those.

If this listserv isn’t the right one (it’s generally driver oriented),
I’d also appreciate
pointers as to the appropriate listserv for developing hardware
interacting with Windows.

Thank you

James

James Bellinger wrote:

I’m developing a composite USB device where the mass storage feature can be
enabled or disabled. I’d like to ensure that the device has no drive
letter when the feature is disabled. What would I have to send/reply with to
convince Windows to do this?

Does the mass storage feature have to be enabled or disabled on the
fly? With an iPhone, for example, switching causes the device to drop
off the bus, and it re-enumerates with or without that interface.
That’s a pretty easy solution.

Changing the
descriptor would work but Windows seems to cache some of those.

Re-enumeration is required in order to detect new descriptors.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

On 2/16/2012 1:07 PM, Tim Roberts wrote:

Does the mass storage feature have to be enabled or disabled on the
fly? With an iPhone, for example, switching causes the device to drop
off the bus, and it re-enumerates with or without that interface.
That’s a pretty easy solution.
> Changing the
> descriptor would work but Windows seems to cache some of those.
Re-enumeration is required in order to detect new descriptors.

Do you mean, then, that Windows only caches HID descriptors and not the
main USB
descriptor?

Thanks

James

James Bellinger wrote:

On 2/16/2012 1:07 PM, Tim Roberts wrote:
>
> Re-enumeration is required in order to detect new descriptors.
Do you mean, then, that Windows only caches HID descriptors and not the
main USB descriptor?

Through Windows 7, the USB stack does not cache any descriptors. I’m
reading that Windows 8 is now caching at least the device and
configuration descriptors.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.