本文介绍可选的 NDIS 轻型筛选器(LWF)可能会导致网络可用性延迟 90 秒。
原始产品版本: Windows
原始 KB 数: 2019184
总结
如果安装了可选的 NDIS 轻型筛选器(LWF)驱动程序,并且驱动程序未启动,则网络将最多 90 秒可用。
详细信息
NDIS 轻型筛选器驱动程序是多个驱动程序模型之一,用于监视和筛选 Windows 中的网络数据包。 LDF 是 NDIS 6 规范(Vista 和以下内容)的新增功能。
NDIS LDF 可以是必需的筛选器驱动程序或可选的筛选器驱动程序。 筛选器运行类型是通过驱动程序的 INF FilterRunType
指定的。 FilterRunType
1 是必需筛选器,而 FilterRunType 为 2 是可选筛选器:
HKR, Ndi,FilterRunType, 0x00010001, 0x00000001 ; MANDATORY filter
或
HKR, Ndi,FilterRunType, 0x00010001, 0x00000002 ; OPTIONAL filter
如果安装了 LWF 驱动程序但未启动,则如果卸载的筛选器驱动程序是可选筛选器,则网络堆栈将不可用长达 90 秒。 如果缺少的筛选器驱动程序是必需的,则堆栈永远不会变得可用。 此超时期限是让筛选器有机会加载。 启动堆栈,暂停堆栈,然后在可选筛选器最终加载时重启它可能会导致监视网络可用性的上层组件产生其他副作用。
通常,筛选器驱动程序通过在 LWF 的 INF 中将其指定 StartType
为 1(SERVICE_SYSTEM_START
)来立即启动为SERVICE_SYSTEM_START:
StartType = 1 ;SERVICE_SYSTEM_START
但是,某些筛选器稍后 SERVICE_DEMAND_START
通过将其 StartType 指定为 3SERVICE_DEMAND_START
():
StartType = 3 ;SERVICE_DEMAND_START
应尽快启动使用 DEMAND START 的 LDF,这通常是从使用会话控制管理器(SCM) API 启动驱动程序的服务或应用程序。 例如,本机 WiFi (NWIFI.SYS) LWF 执行此操作。 它由服务 wlansvc 启动。 因此,尽管存在 SERVICE_DEMAND_START
,但用户不会在网络可用性方面遇到延迟。
如果驱动程序从不启动或启动速度缓慢,则 NDIS 将等待它注册(NdisFRegisterFilterDriver
)并附加到堆栈,然后再使网络适配器可用,最长为 90 秒的超时期限,此时堆栈将在没有它的情况下启动(如果可选)。