Hello all,

I have a WinCE 5.0 BSP for a device on which the customer wants to access
the internal NAND flash and an attached SD card simultaneously from a host PC
as individual disk drives. I've added the blocks to platform.reg mentioned
in the online help and various examples I've seen (reproduced below), but the
two cannot be seen at the same time. I have noticed that the "DeviceName"
key is described in the singular as identifying "the name of the store to
expose to the USB host." Do I infer from this that it is not possible to
expose more than one store in this manner? If this can be done, what would
the registry keys look like?

Also, can anyone provide a citation of Microsoft literature discussing this
area, so that I can better explain if there exists a design limitation
preventing simultaneous visibility of more than one store.

Thanks,
Craig Blome

[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Mass_Storage_Class]
"DeviceName"=- ; erase previous default
"DeviceName"="DSK1:"
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers]
"DefaultClientDriver"=- ; erase previous default
; "DefaultClientDriver"="Serial_Class"
"DefaultClientDriver"="Mass_Storage_Class"

Re: Can I expose SD and internal NAND as separate drives on USB host? by rik

rik
Tue Aug 12 06:22:55 PDT 2008

Hi Craig,

I believe that CE 5.0, the USB function Mass storage client driver
only supports one device.

MSDN isn't completely clear about this, but does imply that it is
targeted to expose a single storage device:
"The universal serial bus (USB) function mass storage client function
driver allows a Microsoft=AE Windows=AE CE platform to expose a storage
device to a USB host controller."
http://msdn.microsoft.com/en-us/library/ms894311.aspx

regards,
Rik Attrill

Re: Can I expose SD and internal NAND as separate drives on USB host? by RyeCatcher

RyeCatcher
Tue Aug 12 07:11:21 PDT 2008

I have tried to use the DeviceIoControl to select the different mass storage
device, not using the registry.

Maybe it can support the two devices, when the hardware has two usb device
controllers. If so, two similar driver for mass storage can be used.

If only one usb device controller, even it has enough endpoints to support
the mass storage class, it is difficult to process the command in the
Default Endpoint 0.

--
RyeCatcher

Shanghai, China




<rik.attrill@gmail.com>
??????:8f8bb5b6-4735-4bd5-b9d2-3f1d41af26b2@x35g2000hsb.googlegroups.com...
Hi Craig,

I believe that CE 5.0, the USB function Mass storage client driver
only supports one device.

MSDN isn't completely clear about this, but does imply that it is
targeted to expose a single storage device:
"The universal serial bus (USB) function mass storage client function
driver allows a Microsoft® Windows® CE platform to expose a storage
device to a USB host controller."
http://msdn.microsoft.com/en-us/library/ms894311.aspx

regards,
Rik Attrill



Re: Can I expose SD and internal NAND as separate drives on USB host? by Rik

Rik
Tue Aug 12 07:36:40 PDT 2008

Indeed, whether you select the mass storage profile statically (via
the registry) or dynamically (via DeviceIoctl()), the problem still
remains that the USB mass storage function driver only seems to expose
one storage device at a time.

I've not done this, but I wonder if the USB composite function client
can be used to acheive what you need:
http://msdn.microsoft.com/en-us/library/aa909606.aspx

The above page says "The USB Function Composite device driver allows a
Windows Embedded CE based USB device to perform multiple functions
simultaneously. For example, the USB Function Composite device driver
allows the use of the USB RNDIS protocol and the USB Mass Storage
client driver simultaneously".

It is probably worth investigating the possibility that this extends
to allow several instances of the same function.

regards,
Rik Attrill

Re: Can I expose SD and internal NAND as separate drives on USB host? by Rik

Rik
Tue Aug 12 08:12:35 PDT 2008

> I've not done this, but I wonder if the USB composite function client
> can be used to acheive what you need:
> http://msdn.microsoft.com/en-us/library/aa909606.aspx

Ah, except, of course, that this isn't implemented in CE 5.0.
In theory, I guess you could integrate the USB composite function
client into your BSP - though as I hinted in my other posting, I'm not
100% sure that the composite class allows multiple instances of the
mass storage profile anyway.