オプションの NDIS LWF は、ネットワークの可用性に 90 秒の遅延を引き起こす可能性があります

この記事では、オプションの NDIS ライトウェイト フィルター (LWF) が、ネットワークの可用性に 90 秒の遅延を引き起こす可能性があることを紹介します。

元の製品バージョン: Windows
元の KB 番号: 2019184

概要

オプションの NDIS ライトウェイト フィルター (LWF) ドライバーがインストールされていて、ドライバーが起動されていない場合、ネットワークは最大 90 秒間使用できません。

詳細

NDIS ライトウェイト フィルター ドライバーは、Windows でネットワーク パケットを監視およびフィルター処理するためのいくつかのドライバー モデルの 1 つです。 LWF は、NDIS 6 仕様 (Vista 以降) の新機能です。

NDIS LWF には、必須のフィルター ドライバーまたはオプションのフィルター ドライバーのいずれかを指定できます。 フィルター実行の種類は、 を使用して FilterRunTypeドライバーの INF で指定されます。 の FilterRunType 1 は必須フィルターですが、FilterRunType 2 は省略可能なフィルターです。

HKR, Ndi,FilterRunType, 0x00010001, 0x00000001 ; MANDATORY filter  

または

HKR, Ndi,FilterRunType, 0x00010001, 0x00000002 ; OPTIONAL filter

LWF ドライバーがインストールされていても起動されていない場合、アンロードされたフィルター ドライバーが省略可能なフィルターである場合、ネットワーク スタックは最大 90 秒間使用できなくなります。 不足しているフィルター ドライバーが必須の場合、スタックは使用できなくなります。 このタイムアウト期間は、フィルターに読み込む機会を与えます。 スタックを起動し、一時停止してから、オプション フィルターが最終的に読み込まれたときに再起動すると、ネットワークの可用性を監視している上位レイヤー コンポーネントに他の副作用が発生する可能性があります。

通常、フィルター ドライバーは、LWF の INF で 1 (SERVICE_SYSTEM_START) として指定StartTypeすることで、SERVICE_SYSTEM_STARTとしてすぐに開始されます。

StartType = 1 ;SERVICE_SYSTEM_START

ただし、一部のフィルターは、StartType を 3 (SERVICE_DEMAND_START) として指定することによって、後SERVICE_DEMAND_STARTで開始されます。

StartType = 3 ;SERVICE_DEMAND_START

DEMAND START を使用する LWF は、通常、セッション 制御マネージャー (SCM) API を使用してドライバーを起動するサービスまたはアプリケーションから、他のメカニズムによってできるだけ早く開始する必要があります。 たとえば、ネイティブ WiFi (NWIFI.SYS) LWF はこれを行います。 これは、サービス wlansvc によって開始されます。 そのため、 ですが、ユーザーは SERVICE_DEMAND_STARTネットワークの可用性に遅延が発生しません。

ドライバーが起動しない場合、または起動が遅い場合、NDIS は、ネットワーク アダプターを使用可能にする前に、登録 (NdisFRegisterFilterDriver) がスタックに接続されるまで待機します。最大 90 秒のタイムアウト期間(オプション) であれば、スタックは起動されません。