中間ドライバー

次の図に示すように、中間ドライバーは通常、ミニポート ドライバーとトランスポート プロトコル ドライバーの間で階層化されています。

Diagram showing an intermediate driver between a miniport driver and a transport protocol driver.

Note

NDIS ドライバー スタックの詳細と、4 つの NDIS ドライバーの種類の間の関係を示す図については、「NDIS ドライバー スタック」をご覧ください。

ドライバー階層内の中間位置にあるため、中間ドライバーが公開するには、上位プロトコル ドライバーと基になるミニポート ドライバーの両方と通信する必要があります。

  • プロトコル エントリ ポイント。

    その下端では、NDIS が ProtocolXxx 関数を呼び出して、基になるミニポート ドライバーからの要求を伝えます。 中間ドライバーは、基になるミニポート ドライバーへのプロトコル ドライバーのように見えます。

  • ミニポート ドライバーのエントリ ポイント。

    上端では、NDIS が MiniportXxx 関数を呼び出して、1 つ以上の上位プロトコル ドライバーの要求を伝えます。 中間ドライバーは、上位プロトコル ドライバーへのミニポート ドライバーのように見えます。

中間ドライバーは、MiniportXxx 関数のサブセットを上端でエクスポートします。 さらに、上位プロトコル ドライバーをバインド可能な仮想アダプターも 1 つ以上エクスポートします。 プロトコル ドライバーからは、中間ドライバーによってエクスポートされた仮想アダプターは物理 NIC に見えます。 プロトコル ドライバーがパケットまたは要求を仮想アダプターに送信すると、中間ドライバーはこれらのパケットと要求を、基になるミニポート ドライバーに伝達します。 基になるミニポート ドライバーが、受信したパケットを指示する、情報のプロトコル ドライバーの要求に応答する、またはステータスを指示した場合、中間ドライバーは、そのようなパケット、応答、ステータスを、仮想アダプターにバインドされているプロトコル ドライバーに伝達します。

中間ドライバーを使用すると、以下のことができます。

  • 異なるネットワーク メディア間で変換します。

  • 複数の NIC 間でパケット送信のバランスを取ります。 負荷分散ドライバーは、1 つの仮想アダプターを上位トランスポート プロトコルに公開し、複数の NIC に送信パケットを分散します。

NDIS 中間ドライバー

NDIS 中間ドライバー リファレンス