默认 NDIS 端口

端口零保留为微型端口适配器的默认端口。 如果任何函数的 PortNumber 参数或任何结构的 PortNumber 成员设置为零,则表示微型端口驱动程序未分配任何端口,或者当前活动不是特定于端口的。

有关默认 NDIS 端口的一个很好的示例,请考虑 (LBFO) MUX 中间驱动程序进行负载均衡和故障转移。 此类驱动程序的虚拟微型端口可以是端口零 (默认端口) 。 中间驱动程序可以将端口分配给基础微型端口适配器,其端口号范围从 1 到端口数 (N) 。 过度覆盖的驱动程序可以将数据发送到端口零,以允许 LBFO 驱动程序选择一个基础端口,或者过度覆盖的驱动程序可以指定一个从 1 到 N 的端口号来为发送操作选择特定的端口。

微型端口驱动程序不必分配任何端口或支持默认端口以外的任何端口号。 即使微型端口驱动程序不分配端口,NDIS 也会分配默认端口,并在微型端口驱动程序调用 NdisMSetMiniportAttributes 函数以在 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 结构中设置注册属性后激活 该端口当 NdisMSetMiniportAttributes 成功返回时,微型端口驱动程序可以在默认端口上启动操作。 在这种情况下,当微型端口驱动程序从 MiniportHaltEx 函数返回时,NDIS 将释放默认端口。