Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Driver Auto-Install on USB Mass Storage

0 views
Skip to first unread message

Lono

unread,
May 20, 2008, 10:04:27 PM5/20/08
to
We are trying to give our USB CDCACM device the ability to auto install
driver from usb mass storage device. We made a composite device with 3
interface. 2 for CDCACM and 1 for mass storage. When the device connects to
PC, the driver shall be installed from mass storage.
However, when the device connencts to PC, Windows pops out an "Add
Hardware Wizard" and it asks us to install driver for CDCACM device. The mass
storage does not show up until we install the driver for CDCACM device
manually. We cannot auto install driver for CDCACM from mass storage because
it only shows up after we install CDCACM driver.
We think the result is due to the enumeration order of composite device
interface, so we exchange the interface order of CDCACM and mass storage.
Nevertheless, it doesn't work.
Why can't windows install built-in driver for mass storage before
install CDCACM driver?
We use XP SP3 for testing, therefore we don't need any hotfix from MS.

chris.a...@gmail.com

unread,
May 21, 2008, 12:20:49 PM5/21/08
to
On May 20, 9:04 pm, Lono <L...@discussions.microsoft.com> wrote:

> We are trying to give our USB CDCACM device the ability to auto install
> driver from usb mass storage device. We made a composite device with 3
> interface. 2 for CDCACM and 1 for mass storage. When the device connects to
> PC, the driver shall be installed from mass storage.

Which generic parent driver are you using? usbccgp.sys doesn't
support grouping by CDC union descriptors, and you say your CDC
function has two interfaces, so this seems like you're going to get
three child devices, which isn't what you want..

> However, when the device connencts to PC, Windows pops out an "Add
> Hardware Wizard" and it asks us to install driver for CDCACM device. The mass
> storage does not show up until we install the driver for CDCACM device
> manually. We cannot auto install driver for CDCACM from mass storage because
> it only shows up after we install CDCACM driver.

I don't think the child device creation order is guaranteed, so what
you're trying to do is likely never going to work.

Plus, even if the mass storage device did install first and start
working, it would have to have an Autorun that preinstalled the
drivers without user intervention, *and* this would have to happen
before Setup started looking for the CDC ACM drivers. So, not going
to work for that reason either.

Lono

unread,
May 27, 2008, 5:48:00 AM5/27/08
to
> On May 20, 9:04 pm, Lono <L...@discussions.microsoft.com> wrote:
>
> > We are trying to give our USB CDCACM device the ability to auto install
> > driver from usb mass storage device. We made a composite device with 3
> > interface. 2 for CDCACM and 1 for mass storage. When the device connects to
> > PC, the driver shall be installed from mass storage.
>
> Which generic parent driver are you using? usbccgp.sys doesn't
> support grouping by CDC union descriptors, and you say your CDC
> function has two interfaces, so this seems like you're going to get
> three child devices, which isn't what you want..

Sorry for not mentioning it. We use IAD descriptor to group the two CDC
interfaces into one device.


> > However, when the device connencts to PC, Windows pops out an "Add
> > Hardware Wizard" and it asks us to install driver for CDCACM device. The mass
> > storage does not show up until we install the driver for CDCACM device
> > manually. We cannot auto install driver for CDCACM from mass storage because
> > it only shows up after we install CDCACM driver.
>
> I don't think the child device creation order is guaranteed, so what
> you're trying to do is likely never going to work.
>
> Plus, even if the mass storage device did install first and start
> working, it would have to have an Autorun that preinstalled the
> drivers without user intervention, *and* this would have to happen
> before Setup started looking for the CDC ACM drivers. So, not going
> to work for that reason either.

There must be some "hidden" order for child device creation :(
I am still wondering why I cannot have mass storage device without
installing CDC ACM drivers first. If I did not install CDC ACM drivers, the
mass storage should still be enumerated, shouldn't it?


chris.a...@gmail.com

unread,
May 27, 2008, 10:39:28 AM5/27/08
to
On May 27, 4:48 am, Lono <L...@discussions.microsoft.com> wrote:

> There must be some "hidden" order for child device creation :(

There "must" be? Why do you think that?

> I am still wondering why I cannot have mass storage device without
> installing CDC ACM drivers first. If I did not install CDC ACM drivers, the
> mass storage should still be enumerated, shouldn't it?

Sure, the mass storage PDO will be created by the generic parent
driver. But until you go through device installation for that device,
it's effectively like it doesn't exist.

0 new messages