Does RNDIS need to be listed as the first function within a composite USB device?

Ryan Metcalfe 1 Reputation point

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).

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:

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!

Windows 10
Windows 10
A Microsoft operating system that runs on personal computers and tablets.
8,857 questions
Windows API - Win32
Windows API - Win32
A core set of Windows application programming interfaces (APIs) for desktop and server applications. Previously known as Win32 API.
2,223 questions
Windows 10 Network
Windows 10 Network
Windows 10: A Microsoft operating system that runs on personal computers and tablets.Network: A group of devices that communicate either wirelessly or via a physical connection.
2,147 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Edward Lok 6 Reputation points

    I've the same problem. I've implemented a multifunction composite device with single configuration, 2 functions, RNDIS & RNDIS. The second RNDIS interface will be returning the same error as what @Ryan Metcalfe mentioned.

    Anyone experts can help to advice whether this a limitation from usbccgp?

    0 comments No comments