xxxxx@gmail.com schrieb:
Hagen Patzke wrote:
>(2) The USB standard DOES support one device having multiple
>“personalities” (configurations). And different interfaces associated
>with these configurations. For some applications it is obviously very
>appealing to use this flexibility.
>
>Thank you all for making it crystal-clear to me that we all
>can NOT use such a functionality with the current Microsoft
>Windows driver system (all versions so far).What? No one ever said that. In fact, Doron and others explained
>(in a “crystal-clear” fashion) that you absolutely can use the second
> configuration on a device, you just can’t use the KMDF USB DDI’s,
> or the Microsoft-supplied generic parent driver (<= XP),
> to access it.
Case in point - no one said that you cannot use multiple device
configurations in Windows.
As far as I understand, someone can use a device with multiple
configurations with Windows – but then they are pretty much on their own.
There is no clean way to use built-in Windows drivers for ‘standard’
functionality like MSD.
And for me this was an important issue/limitation to learn of (and it
was not clear to me before the discussion - hence the comment).
No amount of ™ signs or “rathole” namecalling changes this fact.
Please note that I quoted some OP mail and style here.
It’s also been explained in other threads that this decision was
> made because devices with more than one USB configuration are
> actually very rare, despite your assertion about it being
> “appealing for many applications”.
Let me explain what leads me to this “assertion” that (to quote what I
actually wrote) “for some applications it is … very appealing”:
Years ago I heard of a device being developed (at the company I worked
for at the time, but in a different department) that had two modes of
operation: one MSD mode (for bringing its own driver with it), and one
device mode (for the actual functionality).
This I found very appealing - and extrapolating a bit I found it even
more appealing to one day possibly have devices that bring their own
drivers with them.
Flash memory prices have been falling for some time, and so it does make
sense (at least to me) to use some ‘surplus’ memory to incorporate
drivers or configuration data or even an application - something like
real plug-and-play functionality, with even app and driver included.
Now that I had to deal with an existing USB driver for one of our
hardware interfaces (at a different company), I read the specs and found
that one USB device can have multiple configurations, selectable by a
relatively simple mechanism.
Well - to me at least - it sounds quite reasonable to have a USB device
with one MSD configuration (for the drivers and stuff) and one
“device-functional” configuration for the main task.
(Other applications could include e.g. a fingerprint reader and a secure
MSD device, or e.g. a smart card reader and secure audio device with mic
and speaker – with ultimate security, en/decrypting everything in the
device itself. Etc.)
From some OP mail I learned that obviously someone actually implemented
such a chip or device. They did not implement “two devices” (i.e.
different PIDs), but one device with two configurations, one of them a
MSC, one something different.
Of course I learned that Windows (usually) selects drivers according to
VID/PID (plus device class and what not), so I am hopefully not a
complete blank.
But I did not know that there is no standard way of switching over to
a different configuration at runtime or to use the “inbox drivers” (to
quote Doron) for such a device.
Let’s face it: if they are not supported by Windows, any chip designer
would be very ill advised to actually use multiple configurations for
the aforementioned purpose.
(BTW, anybody here who remembers the “bad old days” of MS-DOS where you
had to reboot for any new driver – until PnP arrived? )
So before you go spouting off next time I recommend
> you educate yourself a little further…
Thank you for the good advice.
What triggered my response was the “automatic reaction” (at least it
looked to me like one) I noticed: “A device does something in a way
Windows does not handle well -> change your hardware.”
In the short term this is probably a very good piece of advice, but I
somehow don’t like where this alley might ultimately lead us: no new
functionality because nobody dares to implement it.
And this can not be good for any OS.
Thanks for your time. -H