NDIS 协议驱动程序简介
NDIS 协议驱动程序在其下边缘导出一组 ProtocolXxx 函数。 此类协议驱动程序与 NDIS 通信以发送和接收网络数据。 协议驱动程序绑定到在其上边缘导出 MiniportXxx 接口的基础微型端口 驱动程序或中间驱动程序。
注意 中间驱动程序的微型端口驱动程序上边缘 (虚拟微型端口) 不管理物理设备。 基础微型端口驱动程序管理物理设备。
协议驱动程序始终使用 NDIS 提供的函数来与基础 NDIS 驱动程序通信以发送和接收网络数据。 例如,具有无连接下边缘 (与无连接媒体的基础驱动程序通信的协议驱动程序(如以太网) )必须调用 NdisSendNetBufferLists 以将网络数据发送到基础 NDIS 驱动程序。 协议驱动程序可以调用 NdisOidRequest 来查询或设置基础无连接驱动程序支持的 OID。 具有面向连接的下边缘 (与面向连接的媒体(如 ISDN) )的基础驱动程序通信的协议驱动程序必须调用 NdisCoSendNetBufferLists 以将网络数据发送到较低级别的 NDIS 驱动程序。 它还可以调用 NdisCoOidRequest 来查询或设置面向连接的基础驱动程序支持的 OID。
NDIS 还提供一组 NdisXxx 函数,用于隐藏基础操作系统的详细信息。 例如,协议驱动程序可以调用 NdisInitializeEvent 来创建用于同步的事件,并调用 NdisInitializeListHead 来创建链接列表。 使用此类函数的 NDIS 版本的协议驱动程序在 Microsoft 操作系统中更易于移植。 但是,协议驱动程序还可以调用内核模式支持例程,例如 IoCreateDevice。 有关详细信息,请参阅 Kernel-Mode支持例程摘要。
协议驱动程序的开发人员应使用应用于其他 NDIS 驱动程序的相同 编程注意事项 。