Windows ベースのオペレーティング システムでは、ミニポート、プロトコル、フィルター、中間ドライバーなど、いくつかの種類のカーネル モード NDIS ネットワーク ドライバーがサポートされています。 この記事では、サポートされている各ドライバーの種類について説明し、Windows 用ネットワーク ドライバーを開発する前に読む必要があるドキュメントについて説明します。
ネットワーク ドライバー インターフェイス仕様 (NDIS) の最新バージョンは、バージョン 6.89 です。 サポートされているすべてのバージョンの NDIS とその機能の詳細については、「 NDIS バージョンの概要」を参照してください。
サポートされているドライバーの種類
Windows Vista 以降のオペレーティング システム バージョンでは、次の種類のカーネル モード NDIS ベースのネットワーク ドライバーがサポートされています。
ミニポート ドライバー
ミニポート ドライバーは、ネットワーク アダプターを管理し、上位レベルのドライバーのインターフェイスを提供します。 ネットワーク インターフェイス カード (NIC) や仮想デバイスなどの物理ハードウェアを制御する必要がある場合は、ミニポート ドライバーを使用します。
一般的なミニポート ドライバーのバリエーション:
- 接続指向ミニポート呼び出しマネージャー (MCM)
- Windows ドライバー モデル (WDM) ミニポート ドライバー
- 中間ドライバーの上端
プロトコル ドライバー
プロトコル ドライバーは、ミニポート アダプターにバインドすることによって、ドライバー スタックで高レベルのサービスを提供します。 ネットワーク プロトコルまたはアプリケーション固有のネットワーク インターフェイスを実装する必要がある場合は、プロトコル ドライバーを使用します。
一般的なプロトコル ドライバーのバリエーション:
- 接続指向呼び出しマネージャー (MCM)
- 接続指向クライアント
- 中間ドライバーの下端
フィルター ドライバー
フィルター ドライバーは、プロトコル ドライバーとミニポート ドライバー間の情報をフィルター処理します。 既存のドライバーを変更せずにネットワーク トラフィックを変更したり、ネットワーク アクティビティを監視したりする必要がある場合は、フィルター ドライバーを使用します。
一般的なユース ケース:
- ミニポート アダプターによって提供されるサービスを強化する
- ネットワーク統計情報を収集する
- フィルターの変更または監視を実装する
中間ドライバー
中間ドライバーは、プロトコル ドライバーとミニポート ドライバーの間に配置され、両方にインターフェイスを提供します。 負荷分散やフェールオーバー ソリューションなどのマルチプレクサー サービスを実装する必要がある場合は、中間ドライバーを使用します。
主な機能:
- n から m のマルチプレクサー サービスを実装する
- 負荷分散とフェールオーバー ソリューションを提供する
- ハードウェアをミニポート中間ドライバーとして管理する
サポートされるその他のドライバー モデル
特定のハードウェア テクノロジとアーキテクチャを操作するには、次のドライバー モデルを使用します。
| テクノロジー | Description |
|---|---|
| スケーラブルなネットワーク | ネットワーク アダプターへのタスクのオフロードをサポートするネットワーク テクノロジ (例: Header-Data 分割 - 受信したイーサネットフレーム内のヘッダーとデータを別々のバッファに分割する機能。 Receive Side Scaling - マルチプロセッサ システムのネットワーク パフォーマンスを向上させるために使用されるネットワーク ドライバー テクノロジー。 TCP チムニー オフロード - TCP プロトコル処理のデータ転送部分を、適切な機能を備えるネットワーク アダプターにオフロードします。 TCP/IP オフロード - 適切な機能を備えるネットワーク アダプターへのタスクまたは接続のオフロード。 ネットワーク ダイレクト カーネル プロバイダー インターフェイス (NDKPI) - SMB サーバーやクライアントなどのカーネル モードの Windows コンポーネントが、独立系ハードウェア ベンダー (IHV) によって提供されるリモート ダイレクト メモリ アクセス (RDMA) 機能を使用できるようにします。 Generic Routing Encapsulation (NVGRE) タスク オフロードを使用したネットワーク仮想化 - Generic Routing Encapsulation (GRE) カプセル化されたパケットを使用可能にします。 LSO(Large Send Offload、ラージセンドオフロード) 仮想マシン キュー (VMQ) 送信 (Tx) チェックサム オフロード レシーブ (Rx) チェックサム オフロード。 |
| 仮想化されたネットワーク | などの Hyper-V 仮想化環境をサポートするネットワーク テクノロジ シングル ルート I/O 仮想化 (SR-IOV) 仮想マシン キュー (VMQ) Hyper-V 拡張可能スイッチ |
| ワイヤレス ネットワーク | ネイティブ 802.11 ワイヤレス LAN を含むネットワーク機能。 |
| ネットワーク モジュール レジストラー | ドライバーがネットワーク モジュールを相互に接続できるようにするシステム機能。 |
| Winsock カーネル | カーネル モードのネットワーク プログラミング インターフェイス (NPI)。 |
| IP ヘルパー | ドライバーがローカル コンピューターのネットワーク構成に関する情報を取得および変更できるようにするユーティリティ関数のセット。 |
| Windows フィルタリング プラットフォーム コールアウト ドライバー | ネットワーク データの詳細な検査、パケット変更、ストリーム変更、ログ記録を可能にするカーネル モード インターフェイス。 |
| システム エリア ネットワーク | Windows ソケット ダイレクトを使用して、高パフォーマンスの接続指向ネットワークをサポートするネットワーク接続の種類。 |