From: Maxim S. Shatskih on
> single USB interface. Is this possible? One socket, one electrical
> connection, look like two devices: vendor A product X and vendor A
> product Y. Can do?

Embed a hub to the device. The usual and normal way.

--
Maxim S. Shatskih
Windows DDK MVP
maxim(a)storagecraft.com
http://www.storagecraft.com

From: Maxim S. Shatskih on
> Thanks, Tim, but when Phil first replied, he appeared to say that a
> "composite" device can only describe a single vendor ID and product
> ID.

Yes.

> "composite" won't do, and "compound" is necessary, correct?

Yes.

Since you already have a hub, you need 4port hub and not 3port, and thus 2 CPUs each with its own vendor/product ID.

P.S. Reading the USB spec helps a lot :-)

--
Maxim S. Shatskih
Windows DDK MVP
maxim(a)storagecraft.com
http://www.storagecraft.com

From: Philip Ries [MSFT] on
So you need 4 USB-connected devices inside of your device? Then it
would be best to use a 4-port hub rather than a second internal hub.
USB-connected devices can only be 5 hubs deep, and each layer of hub you
add internally takes away from the number of external hubs the user can
use between the system and your device.

Be sure to set the removable bits correctly in the hub descriptor(s) so
that Windows knows which devnodes belong to the device.

On 8/25/2010 5:12 PM, Frank Natoli wrote:
> Many thanks for your reply.
>
> I do need the different product codes, so the "compound device" would
> appear to fit the bill.
>
> The hardware guy has picked for the circuit board a three port USB
> hub, the Cypress CY7C65631. Two ports must go to two SSDs. The third
> port goes to the CPU USB. But the CPU USB needs to represent two
> devices, same vendor ID but different product IDs. The "compound
> device" saves the day, don't need to find a four port USB hub.
>
> However, your reply appears to indicate that the CPU must represent
> itself as a hub in order to then portray the "compound device". Is
> that correct?