While implementing a multifunction composite device comprised of 2 functions, RNDIS & ACM, I've noticed that Windows 10 is unable to install / start the RNDIS device unless it is listed as the first function (first IAD / first set of interfaces).
The following .txt is a USB descriptor dump from a working case, where the first IAD / first set of interfaces listed correspond to RNDIS (followed by the ACM IAD / interfaces).
rndis-acm-working.txt
However, if I swap the order that the RNDIS & ACM descriptors are written, such that the ACM IAD / interfaces are listed first (followed by the RNDIS IAD / interfaces), then the enumerated RNDIS device has problems starting.
This device cannot start. (Code 10)
{Operation Failed}
The requested operation was unsuccessful.
Here's the USB descriptor dump in the failure case:
acm-rndis-not-working.txt
Note that in both cases, the ACM device comes up properly (regardless of whether it is the first or second function listed)
I've gone over the USB descriptor dump for the RNDIS failure case many times, and it looks proper to me. . . does this possibly indicate a bug in the RNDIS driver stack (rndismp6.sys / usb80236.sys / elsewhere), or am I missing something?
Thanks very much in advance!