中间驱动程序

如下图所示,中间驱动程序通常在微型端口驱动程序和传输协议驱动程序之间分层。

显示微型端口驱动程序和传输协议驱动程序之间的中间驱动程序的关系图。

注意

有关 NDIS 驱动程序堆栈的详细信息,以及显示所有四个 NDIS 驱动程序类型之间的关系的关系图,请参阅 NDIS 驱动程序堆栈

由于其在驱动程序层次结构中的中间位置,中间驱动程序必须与过度协议驱动程序和基础微型端口驱动程序进行通信,以便公开:

  • 协议入口点。

    在其下边缘,NDIS 调用 ProtocolXxx 函数来传达来自基础微型端口驱动程序的请求。 中间驱动程序看起来像基础微型端口驱动程序的协议驱动程序。

  • 微型端口驱动程序入口点。

    在其上边缘,NDIS 调用 MiniportXxx 函数来传达一个或多个过度覆盖协议驱动程序的请求。 中间驱动程序看起来像是超容协议驱动程序的微型端口驱动程序。

中间驱动程序在其上边缘导出 MiniportXxx 函数的子集。 它还导出一个或多个虚拟适配器,过度协议驱动程序可以绑定到这些适配器。 对协议驱动程序,中间驱动程序导出的虚拟适配器似乎是物理 NIC。 当协议驱动程序将数据包或请求发送到虚拟适配器时,中间驱动程序会将这些数据包和请求传播到基础微型端口驱动程序。 当基础微型端口驱动程序指示收到的数据包、响应协议驱动程序的信息请求或指示状态时,中间驱动程序会将此类数据包、响应和状态传播到绑定到虚拟适配器的协议驱动程序。

可以使用中间驱动程序来:

  • 在不同网络媒体之间进行转换。

  • 跨多个 NIC 平衡数据包传输。 负载均衡驱动程序向过度传输协议公开一个虚拟适配器,并在多个 NIC 之间分配发送数据包。

NDIS 中间驱动程序

NDIS 中间驱动程序参考