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

Ryan Metcalfe 1 Reputation point
2021-07-13T15:12:17.98+00:00

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!

Windows 10
Windows 10
A Microsoft operating system that runs on personal computers and tablets.
11,841 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,686 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,369 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Edward Lok 6 Reputation points
    2022-05-11T03:22:49.353+00:00

    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

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.