CDC-ECM 是由 USB-IF 创建的标准。它根本与RNDIS无关。正如你的报价所说,它早于 RNDIS。这意味着它是在 RNDIS 存在之前创建的,因此除非有时间机器进入,否则它不能基于 RNDIS。如果你看一下协议,它显然是不同的。
CDC-ECM 在 Linux 主机、MacOS、ChromeOS 和某些(主要是三星)Android 手机上开箱即用。
Microsoft 决定在 USB 协议上创建一个新的以太网,而不是使用已经存在的标准 (CDC-ECM)。微软就是这样。所以他们创建了 RNDIS,它不是标准,也没有发布。这是一个基于 NDIS 的 hack,NDIS 是 Microsoft 的旧 DOS 和 Windows 3.11 时代的网络协议。微软也是如此。他们喜欢将东西建立在旧的 MS 软件之上,这些软件基于更旧的 MS 软件,一直追溯到 DOS。这使得其他任何人都很难与之兼容。
Microsoft 在 Windows 中不包含 CDC-ECM 驱动程序,但有 RNDIS 驱动程序。
如果没有 INF 文件,仅使用供应商和产品 ID、设备类等,Windows 将无法加载包含的 RNDIS 驱动程序。Microsoft 创建了一个非标准 USB 设备标识描述符(请参阅此处的模式)必须用于向 Windows 识别 RNDIS 设备,以便加载通用驱动程序。
Linux 有一个 CDC-ECM / RNDIS 组合小工具,可用于更广泛的兼容性。这显示为两个功能的 USB 设备。一个功能是 RNDIS,Windows 将使用它。另一个功能是 CDC-ECM,其他人都会使用它。这不是“支持 RNDIS 的 ECM”。这是两个不同的功能,一次只能使用其中一个,它们都是由同一个小工具创建的。