远程 NDIS (RNDIS) 概述
远程 NDIS (RNDIS)无需硬件供应商为连接到 USB 总线的网络设备编写 NDIS 微型端口设备驱动程序。 远程 NDIS 通过定义与总线无关的消息集以及此消息集如何通过 USB 总线运行的说明来实现此目的。 由于此远程 NDIS 接口已标准化,因此一组主机驱动程序可以支持附加到 USB 总线的任意数量的网络设备。 这大大减轻了设备制造商的开发负担,提高了系统的整体稳定性,因为不需要新的驱动程序,并改进了最终用户体验,因为没有驱动程序要安装以支持新的 USB 总线连接网络设备。 目前,Microsoft Windows 提供对 USB 上的远程 NDIS 的支持。
下图显示了设备制造商的 NDIS 微型端口与远程 NDIS 微型端口驱动程序和 USB 传输驱动程序的组合的替换。 因此,设备制造商可以专注于设备实现,无需开发 Windows 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 设备。 此外,特定总线上的所有网络设备只需要一个总线传输层。
本部分包括以下文章: