在实现由 RNDIS 和 ACM 两个功能组成的多功能复合设备时,我注意到 Windows 10 无法安装/启动 RNDIS 设备,除非它被列为第一个功能(第一个 IAD/第一组接口)。
以下 .txt 是来自工作案例的 USB 描述符转储,其中列出的第一组 IAD / 第一组接口对应于 RNDIS(随后是 ACM IAD / 接口):
但是,如果我交换 RNDIS 和 ACM 描述符的写入顺序,以便首先列出 ACM IAD / 接口(然后是 RNDIS IAD / 接口),那么枚举的 RNDIS 设备启动时会出现问题。
This device cannot start. (Code 10)
{Operation Failed}
The requested operation was unsuccessful.
这是失败情况下的 USB 描述符转储: acm-rndis-not-working.txt
请注意,在这两种情况下,ACM 设备都会正常启动(无论它是列出的第一个功能还是第二个功能)
我已经多次检查了 RNDIS 失败案例的 USB 描述符转储,它对我来说看起来很合适。. . 这可能表明 RNDIS 驱动程序堆栈(rndismp6.sys / usb80236.sys / 其他地方)中存在错误,还是我遗漏了什么?
首先十分感谢!