ミニポート ドライバー

NDIS ミニポート ドライバーには、次の 2 つの基本的な機能があります。

  • NIC 経由でのデータの送受信を含む、ネットワーク インターフェイス カード (NIC) の管理。

  • フィルター ドライバー、中間ドライバー、プロトコル ドライバーなど、上位レベルのドライバーとのインターフェイス。

ミニポート ドライバーは、その NIC と NDIS ライブラリを介して上位レベルのドライバーと通信します。 NDIS ライブラリは、ミニポート ドライバーが呼び出す必要があるすべてのオペレーティング システム関数をカプセル化する関数 (NdisMXxx とその他の NdisXxx 関数) の完全なセットをエクスポートします。 次に、ミニポート ドライバーは、ミニポート ドライバーにアクセスするため、NDIS が独自の目的で呼び出すか、上位レベルのドライバーの代わりに呼び出すエントリ ポイント (MiniportXxx 関数) のセットをエクスポートする必要があります。

Note

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

次の送受信操作は、NDIS と上位レベルのドライバーとのミニポート ドライバーのやり取りを示しています。

  • トランスポート ドライバーが送信するパケットを持っている場合、NDIS ライブラリによってエクスポートされた NdisXxx 関数を呼び出します。 NDIS は、ミニポート ドライバーによってエクスポートされた適切な MiniportXxx 関数を呼び出すことにより、ミニポート ドライバーにパケットを渡します。 ミニポート ドライバーは、適切な NdisXxx 関数を呼び出すことにより、送信用の NIC にパケットを転送します。

  • NIC は、自分自身にアドレス指定されたパケットを受信すると、NDIS または NIC のミニポート ドライバーによって処理されるハードウェア割り込みをポストできます。 NDIS は、適切な MiniportXxx 関数を呼び出すことにより、NIC のミニポート ドライバーに通知します。 ミニポート ドライバーは、NIC からのデータの転送を設定し、適切な NdisXxx 関数を呼び出すことにより、上位レベルのドライバーをバインドする受信パケットの存在を示します。

コネクションレスおよび接続指向のミニポート ドライバー

NDIS は、コネクションレス環境と接続指向環境の両方のミニポート ドライバーをサポートしています。

コネクションレス ミニポート ドライバーは、イーサネットなどのコネクションレス ネットワーク メディアの NIC を制御します。 コネクションレス ミニポート ドライバーは、逆シリアル化されたドライバーとシリアル化されたドライバーにさらに分割されます。

すべての NDIS 6.0 以降のドライバーが逆シリアル化されます。

  • 逆シリアル化されたドライバーは、独自の MiniportXxx 関数の操作をシリアル化し、すべての受信送信パケットを内部キューに入れます。 ドライバーの重要なセクション (一度に 1 つのスレッドのみ実行できるコード) が小さく保たれる限り、これにより全二重のパフォーマンスが大幅に向上します。

  • シリアル化されたドライバーは、MiniportXxx 関数への呼び出しをシリアル化し、送信キューを管理する点で NDIS に依存します。

接続指向ミニポート ドライバーは、ISDN などの接続指向ネットワーク メディアの NIC を制御します。 接続指向ミニポート ドライバーは常に逆シリアル化されます。常に独自の MiniportXxx 関数の操作をシリアル化し、すべての受信送信パケットを内部キューに入れます。

NDIS ミニポート ドライバーは、NDIS 以外の下端を持つことがあります (次の図を参照)。

NDIS 非準拠の下位エッジを持つ NDIS ミニポート ドライバーの構成図

ミニポート ドライバーは、NDIS 以外の下端を通じて、バス上のデバイスを制御するユニバーサル シリアル バス (USB) などのバスのクラス インターフェイスを使用します。 ミニポート ドライバーは、バス、またはバスに接続されているリモート デバイスに直接 I/O 要求パケット (IRP) を送信することにより、デバイスと通信します。 ミニポート ドライバーは、上端で、ミニポート ドライバーが上にある NDIS ドライバーと通信できるようにする標準 NDIS ミニポート ドライバー インターフェイスを公開します。

NDIS ミニポート ドライバー

NDIS ミニポート ドライバー リファレンス