We are developing a device with a composite USB interface. Right now, we have one interface. We are using Windows 8.1. On our desktop systems, in device manger, the HW ID is showing &MI_00 on the end.
When we plugged the device into a laptop, it didn’t have the &MI_00. Since we had the &MI_00 in the inf file, device manager did not load the driver.
Does anyone know why they are different? Thanks.
xxxxx@ddc-web.com wrote:
We are developing a device with a composite USB interface. Right now, we have one interface. We are using Windows 8.1. On our desktop systems, in device manger, the HW ID is showing &MI_00 on the end.
When we plugged the device into a laptop, it didn’t have the &MI_00. Since we had the &MI_00 in the inf file, device manager did not load the driver.
Does anyone know why they are different?
If your device only has one interface, then it’s not a composite
device. The MI_00 should not be involved.
When you’re developing a new device, it is possible to get yourself in
trouble if you switch between a composite and a non-composite device.
When you have a composite device, the root (VID_xxxx&PID_xxxx) has to be
claimed by usbccgp. If you had a driver that previous claimed the
non-composite root, it will continue to be loaded even after you switch
to composite, which means no one is around to expose the MI_xx device
objects.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
“If your device only has one interface” …
But I wonder what actually happens if the device meets the class
specification for usbccgp:
The device class field of the device descriptor (*bDeviceClass*) must
contain a value of zero, or the class (*bDeviceClass*), subclass (
*bDeviceSubClass*), and protocol (*bDeviceProtocol*) fields of the device
descriptor must have the values 0xEF, 0x02 and 0x01 respectively, as
explained in USB Interface Association Descriptor
http:
.
While only having one interface. I’ll guess that in some versions of
windows it gets enumerated as USB\COMPOSITE and in some it doesn’t. In the
ones it does usbccgp would be the function driver and would create a
single MI_*
device.
So is the laptop running a version of windows that is not 8.1?
Mark Roddy
On Thu, Oct 30, 2014 at 4:55 PM, Tim Roberts wrote:
> xxxxx@ddc-web.com wrote:
> > We are developing a device with a composite USB interface. Right now, we
> have one interface. We are using Windows 8.1. On our desktop systems, in
> device manger, the HW ID is showing &MI_00 on the end.
> >
> > When we plugged the device into a laptop, it didn’t have the &MI_00.
> Since we had the &MI_00 in the inf file, device manager did not load the
> driver.
> >
> > Does anyone know why they are different?
>
> If your device only has one interface, then it’s not a composite
> device. The MI_00 should not be involved.
>
> When you’re developing a new device, it is possible to get yourself in
> trouble if you switch between a composite and a non-composite device.
> When you have a composite device, the root (VID_xxxx&PID_xxxx) has to be
> claimed by usbccgp. If you had a driver that previous claimed the
> non-composite root, it will continue to be loaded even after you switch
> to composite, which means no one is around to expose the MI_xx device
> objects.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> OSR is HIRING!! See http://www.osr.com/careers
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
></http:>