所有 NDIS 驱动程序都可以注册为接口提供程序。 每当驱动程序(或 NDIS 代理接口提供程序)检测到要引入到计算机的新接口时,它都会分配 NET_LUID 索引、注册接口,并将关联的NET_LUID值保留在持久性存储(如注册表)中。 以下列表介绍了如何向计算机引入新接口的几个示例:
安装网络适配器(中间驱动程序的虚拟适配器或物理适配器)。 在这种情况下,NDIS 代理接口提供程序管理接口。
附加筛选器模块。 在这种情况下,NDIS 代理接口提供者管理接口。
MUX 中间驱动程序内部绑定。 MUX 中间驱动程序应实现 NDIS 提供程序服务来处理这种情况,因为内部接口对 NDIS 不可见。
计算机随后重启时,如果接口持久,接口提供程序不应为同一接口分配新的 NET_LUID ;相反,接口提供程序应使用以前存储的NET_LUID值来注册相同的接口。 此外,即使接口不持久,接口提供程序也必须释放NET_LUID索引(如果有计算机电源故障)。 因此,接口提供程序应将NET_LUID存储在永久性存储中(例如注册表)。
如果接口提供程序检测到某个接口正在关闭,则应取消注册接口。
注意 卸载微型端口适配器时,NDIS 代理提供程序会取消注册微型端口适配器的接口,并在分离模块时筛选模块。
如果接口提供程序检测到正在完全删除接口(例如,NDIS 代理提供程序收到卸载微型端口适配器的通知),接口提供程序将取消注册接口并释放NET_LUID索引。 分离筛选器模块时,NDIS 代理提供程序也会释放 NET_LUID 索引。
在运行时,接口提供程序处理他们注册的接口的 OID 请求。 NDIS 代理接口提供程序可能会向基础驱动程序发出 OID 请求以获取接口信息。