维护网络接口堆栈
NDIS 提供服务来维护 RFC 2863) 中的 ifStackTable (接口堆栈表。 NDIS 维护 NDIS 微型端口适配器 NDIS 5 的堆栈表。x 筛选器中间驱动程序和 NDIS 筛选器模块。 NDIS 还提供使 NDIS 驱动程序能够在此表中添加和删除条目的服务。 对于 MUX 中间驱动程序,NDIS 无权访问虚拟微型端口接口与协议下部接口之间的关系。 因此,NDIS 6.0 MUX 中间驱动程序必须指定这些内部接口关系。
若要定义两个接口之间的堆栈关系,任何 NDIS 驱动程序都可以将 HigherLayerIfIndex 和 LowerLayerIfIndex 参数传递给 NdisIfAddIfStackEntry 函数。 这些参数指定一个网络接口,该网络接口在网络接口堆栈中应较高,一个网络接口应在堆栈中较低。
具有与另一个接口相关的接口的堆栈顺序信息的驱动程序 (例如,MUX 中间驱动程序中对 NDIS 不可见的内部绑定) 调用 NdisIfAddIfStackEntry 来填充接口堆栈表。 如果成功创建堆栈条目,此函数将返回NDIS_STATUS_SUCCESS。 通常,拥有 或 是较高层接口的接口提供程序的组件 (HigherLayerIfIndex 标识) 调用 NdisIfAddIfStackEntry。
若要删除堆栈表条目,驱动程序会将 HigherLayerIfIndex 和 LowerLayerIfIndex 参数传递给 NdisIfDeleteIfStackEntry 函数。
有关维护接口堆栈的示例,请参阅 MUX 6.0 示例驱动程序。