Xiaofan Chen wrote:
>> If you are not driving the composite device, then usbccgp.sys rewrites
>> the configuration descriptors.
> Firstly, so device with IAD can be a non-composite device. My
> understanding was that an IAD device would be a composite
> device. Now it seems that was a wrong understanding.

Well, we may have a terminology issue.  If you have an IAD, then you are
a composite device.  What I meant was "if your INF did not claim the
composite device", meaning you used VID_xxxx&PID_xxxx_MI_xx instead of
just VID_xxxx&PID_xxxx, so that usbccgp.sys is definitely involved.

 
> Secondly how does usbccgp.sys rewrites the configuration
> descriptors?

It eliminates everything related to the interfaces that you did not
claim in your INF.  If you claimed MI_03, and you have an IAD for
interfaces 3, 4, and 5, then it will remove everything that mentions
interfaces 0, 1, and 2.


> What do you mean by "You don't need the IAD"? Do you mean
> you do not need to parse the IAD descriptors?

Right.  The IAD is a simple descriptor.  It only provides two things:
the class/subclass/protocol for the interface group, and the interface
numbers that are part of the group.  You don't need the interface
numbers, because the rewritten configuration descriptor only includes
those interfaces.  You don't need the class/subclass/protocol, because
if you have a class-generic driver, usbccgp.sys will have created a
generic PDO for the class/subclass.  If you have a device-specific
driver, then you know what the class and subclass are.


> Assuming WinUSB is used for the IAD that groups Interfac 3/4/5,
> then you mean libusbx can then enumerate the  interface 3/4/5
> now that WinUSB driver is in charge of all three interfaces. Right?

Yes.  Once you see there are several interfaces in the configuration
descriptor, you can call WinUsb_GetAssociatedInterface to get at the
other interfaces.

-- 
Tim Roberts, t...@probo.com
Providenza & Boekelheide, Inc.


------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to