NDIS 中间驱动程序概述
NDIS 驱动程序堆栈必须包括微型端口驱动程序和协议驱动程序,还可以包含中间驱动程序。 由于中间驱动程序是可选的,因此在解决中间驱动程序之前,必须了解微型端口驱动程序、协议驱动程序和 NDIS 之间的关系。
微型端口驱动程序控制 NIC 设备并与协议驱动程序的下边缘通信。 协议驱动程序实现 TCP/IP 等协议,并且位于驱动程序堆栈中的微型端口驱动程序之上。 NDIS 提供的服务可简化微型端口驱动程序和协议驱动程序的开发和维护。
下图说明了微型端口驱动程序、协议驱动程序和 NDIS 之间的关系。
NDIS 微型端口驱动程序和协议驱动程序通过标准 NDIS 接口绑定在一起。
NDIS 中间驱动程序在其上边缘包括一个协议驱动程序接口,一个位于其下边缘的微型端口驱动程序接口。 中间驱动程序的协议接口允许它加载到具有微型端口驱动程序接口的驱动程序上方。 因此,中间驱动程序可以加载到微型端口驱动程序或其他中间驱动程序之上。 中间驱动程序的微型端口接口允许它加载到具有协议下边缘接口的驱动程序下方。 因此,中间驱动程序可以加载低于协议驱动程序或其他中间驱动程序。
下图说明了微型端口驱动程序、协议驱动程序、中间驱动程序和 NDIS 之间的关系。
中间驱动程序微型端口接口称为虚拟微型端口。 它是虚拟的,因为它不直接控制物理设备。 相反,它依赖于基础微型端口驱动程序来与物理设备通信。
中间驱动程序和其他驱动程序之间的绑定称为外部绑定。 NDIS 控制外部绑定。 虚拟微型端口的上边缘与下一个更高的驱动程序绑定,该驱动程序可以是协议驱动程序或其他中间驱动程序。 中间驱动程序协议的下边缘绑定到下一个较低版本的驱动程序,该驱动程序可以是另一个中间驱动程序或基础微型端口驱动程序。
虚拟微型端口的下边缘和中间驱动程序协议的上边缘不需要外部绑定。 相反,中间驱动程序在内部绑定其虚拟微型端口及其协议。 这些特定于实现的内部绑定不受 NDIS 控制。
下图演示了虚拟微型端口与中间驱动程序协议之间的内部绑定。
有两种类型的 NDIS 中间驱动程序:筛选器中间驱动程序和 MUX 中间驱动程序。 以下主题介绍这些驱动程序类型: