远程 NDIS (RNDIS) 概述

远程 NDIS (RNDIS) 无需硬件供应商为附加到 USB 总线的网络设备编写 NDIS 微型端口设备驱动程序。 远程 NDIS 通过定义与总线无关的消息集以及此消息集如何通过 USB 总线操作的说明来实现此目的。 由于此远程 NDIS 接口是标准化的,因此一组主机驱动程序可以支持附加到 USB 总线的任意数量的网络设备。 这大大降低了设备制造商的开发负担,提高了系统的整体稳定性,因为不需要新的驱动程序,并改进了最终用户体验,因为没有驱动程序可以安装以支持新的 USB 总线连接网络设备。 目前,Microsoft Windows通过 USB 提供远程 NDIS 支持。

下图显示了设备制造商的 NDIS 微型端口与远程 NDIS 微型端口驱动程序和 USB 传输驱动程序的组合的替换。 因此,设备制造商可以专注于设备实现,无需开发Windows NDIS 设备驱动程序。

diagram illustrating the architecture of remote ndis.

Microsoft 提供 NDIS 微型端口驱动程序Rndismp.sys,该驱动程序实现远程 NDIS 消息集并与通用总线传输驱动程序通信,后者反过来又与相应的总线驱动程序通信。 此 NDIS 微型端口驱动程序由 Microsoft 实现和维护,并作为Windows的一部分分发。

以下远程 NDIS 消息集反映了 NDIS 微型端口驱动程序接口的语义:

  • 初始化、重置和停止设备操作

  • 发送和接收网络数据包

  • 设置和查询设备操作参数

  • 指示媒体链接状态和监视设备状态

Microsoft 还提供 USB 总线传输驱动程序,该驱动程序实现了用于跨 USB 总线传送远程 NDIS 消息的机制。 此驱动程序在远程 NDIS 微型端口驱动程序与特定于总线的驱动程序(例如 USB)之间传输标准化的远程 NDIS 消息。 还需要特定于总线的驱动程序将任何特定于总线的要求(如电源管理)映射到标准化的远程 NDIS 消息。 USB 1.1 和 2.0 的传输驱动程序由 Microsoft 实现和维护,并作为Windows的一部分进行分发。

此结构允许单个设备驱动程序用于具有特定于总线的传输层的任何远程 NDIS 设备。 此外,特定总线上的所有网络设备只需要一个总线传输层。

本部分包括以下其他主题:

远程 NDIS 的优势

远程 NDIS 的概念和定义

远程 NDIS 文件命名约定

远程 NDIS 消息传送

远程 NDIS 设备控制

远程 NDIS INF 模板

远程 NDIS 设备的类型

Windows中包含的 USB 类驱动程序