中間ドライバー
次の図に示すように、中間ドライバーは通常、ミニポート ドライバーとトランスポート プロトコル ドライバーの間で階層化されています。
Note
NDIS ドライバー スタックの詳細と、4 つの NDIS ドライバーの種類の間の関係を示す図については、「NDIS ドライバー スタック」をご覧ください。
ドライバー階層内の中間位置にあるため、中間ドライバーが公開するには、上位プロトコル ドライバーと基になるミニポート ドライバーの両方と通信する必要があります。
プロトコル エントリ ポイント。
その下端では、NDIS が ProtocolXxx 関数を呼び出して、基になるミニポート ドライバーからの要求を伝えます。 中間ドライバーは、基になるミニポート ドライバーへのプロトコル ドライバーのように見えます。
ミニポート ドライバーのエントリ ポイント。
上端では、NDIS が MiniportXxx 関数を呼び出して、1 つ以上の上位プロトコル ドライバーの要求を伝えます。 中間ドライバーは、上位プロトコル ドライバーへのミニポート ドライバーのように見えます。
中間ドライバーは、MiniportXxx 関数のサブセットを上端でエクスポートします。 さらに、上位プロトコル ドライバーをバインド可能な仮想アダプターも 1 つ以上エクスポートします。 プロトコル ドライバーからは、中間ドライバーによってエクスポートされた仮想アダプターは物理 NIC に見えます。 プロトコル ドライバーがパケットまたは要求を仮想アダプターに送信すると、中間ドライバーはこれらのパケットと要求を、基になるミニポート ドライバーに伝達します。 基になるミニポート ドライバーが、受信したパケットを指示する、情報のプロトコル ドライバーの要求に応答する、またはステータスを指示した場合、中間ドライバーは、そのようなパケット、応答、ステータスを、仮想アダプターにバインドされているプロトコル ドライバーに伝達します。
中間ドライバーを使用すると、以下のことができます。
異なるネットワーク メディア間で変換します。
複数の NIC 間でパケット送信のバランスを取ります。 負荷分散ドライバーは、1 つの仮想アダプターを上位トランスポート プロトコルに公開し、複数の NIC に送信パケットを分散します。