ネットワーク インターフェイス カードのサポート

このトピックでは、NDIS ミニポート ドライバーが管理できるネットワーク インターフェイス カード (NIC) の種類と、NIC の種類がドライバーによるネットワーク データの転送に与える影響についても説明します。

NDIS への NIC の媒体タイプの報告

NIC の媒体タイプを報告するために、ミニポート ドライバーは NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 構造へのポインターを NdisMSetMiniportAttributes 関数の MiniportAttributes パラメーターに渡します。 ミニポート ドライバーは、初期化中に MiniportInitializeEx 関数から NdisMSetMiniportAttributes を呼び出し ます。 ミニポート ドライバーは、NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 構造で登録属性を設定した後、その他の属性を設定する前に、MiniportAttributes を設定する必要があります。 MiniportAttributes 属性の設定は必須です。 ドライバーは、MiniportAttributes 属性を設定する際に、NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 構造の MediaType メンバーに適切なメディアの種類を設定します。

上位の NDIS プロトコル ドライバーが NdisOpenAdapterEx を呼び出して指定されたミニポート アダプターにバインドすると、動作可能なメディアの種類のリストを提供します。 NDIS は、ミニポート ドライバーとプロトコル ドライバーからの情報を使用して、バインディングを設定します。 このバインディングは、ドライバー スタックの上下にネットワーク データを転送するためのパスを提供します。

物理 NIC

ミニポート ドライバーがミニポート アダプターを初期化し、ネットワーク データの送受信を完了する手順は、物理デバイスの機能によって以下のように異なります。

  • NDIS-WDM NIC

    USB ベースの NIC などの NDIS WDM NIC では、ミニポート ドライバーが DMA を使用してメモリを管理する方法は NDIS に関係なく、それには表示されません。

  • バス マスター DMA NIC

    これらの NIC は、ホスト CPU を使用せずに、ネットワークとホスト メモリ間のデータ転送を管理するオンボード DMA コントローラーを介してホスト メモリに直接アクセスできます。

    送信するには、ミニポート ドライバーは、送信バッファーをマッピングするように NIC を設定します。 その後、ミニポート ドライバーは、デバイスにこのメモリから転送を開始させます。 NIC DMA コントローラーは、共有システム メモリからネットワーク上にデータを転送し、送信が完了すると CPU に割り込みます。 受信するには、DMA コントローラーは、割り込みでホストに通知する前に、受信データをホスト メモリに転送します。

    バス マスター DMA NIC には通常、ミニポート ドライバーがシステム メモリ内のバッファーのセットにマップするオンボード リング バッファーがあります。 通常、NIC は複数のパケットを効率的に処理するようにプログラムすることができます。 このような NIC を管理するミニポート ドライバーは、通常、マルチパケットの送受信をサポートします。これは、NIC が複数のパケットを効率的に処理でき、それによって I/O スループットが向上するためです。

  • 非バスマスター DMA NIC

    現在、非バスマスター DMA NIC には以下のものが含まれます。

    • システム DMA NIC

      このような NIC を管理するミニポート ドライバーは、システム DMA コントローラーを使用して、ネットワークとの間のパケット データの転送を管理します。 データの転送には、ホスト CPU の連携が必要です。

仮想 NIC とミニポート

仮想マシンでは、NDIS ミニポート ドライバーは、ソフトウェアのみのリソースを仮想ミニポートとして管理することも、ハードウェア リソースを表す仮想 NIC を管理することもできます。 以下の表では、仮想ミニポートと仮想 NIC の違いについて説明します。

Attribute 仮想ミニポート 仮想 NIC
Definition ソフトウェアでリストされた PnP デバイスにマッピングする NDIS ミニポート ドライバー。 ホスト OS ハイパーバイザーによって管理される NIC。 ハイパーバイザーは、仮想マシンに何らかのハードウェアがあると思わせますが、そのようなハードウェアは実際には物理世界に存在しません。
割り込みがあります いいえ はい
DMA を使用可能 いいえ はい
...によって作成または破棄されます ゲスト OS ホスト OS
ゲスト VM の外部に到達できます いいえ はい