WDI ミニポート ドライバー設計ガイド

重要

WiFiCx は、Windows 11 でリリースされた新しい Wi-Fi ドライバー モデルです。 最新機能を利用するには、WiFiCx を使用することをお勧めします。 WDI ドライバー モデルはメンテナンス モードになり、優先度の高い修正プログラムのみを受け取るようになりました。

WLAN Device Driver Interface (WDI) は、Windows 10 デスクトップ エディション (Home、Pro、Enterprise、Education) と Windows 10 Mobile の両方で、Wi-Fi ドライバー用の新しいユニバーサル Windows ドライバー モデルです。 WLAN デバイスの製造元は、Windows 10 OS の実装を操作する WDI ミニポート ドライバーを書き込みます。 WDI を使用すると、デバイスの製造元は、以前のネイティブ WLAN ドライバー モデルよりも少ないコードを記述できます。 Windows 10 で導入されるすべての新しい WLAN 機能には WDI ベースのドライバーが必要です。

ベンダーから提供されるネイティブ WLAN ドライバーは Windows 10 で引き続き動作しますが、開発時に対象とした Windows バージョンの機能に限定されます。

WDI の要件とインターフェイスの仕様については、この設計ガイドに記載されています。 新しいモデルの主な目標は次のとおりです。

  • Windows WLAN ドライバーの品質と信頼性を向上させます。
  • 現在のドライバー モデルの複雑さを軽減します。これにより、IHV ドライバーの複雑さが軽減され、IHV ドライバー開発の全体的なコストが削減されます。

このドキュメントの焦点は、Windows と IHV ドライバー コンポーネント間の Wi-Fi 操作のフローと動作を指定することです。 ソフトウェア インターフェイス署名 (デバイス ドライバー インターフェイス モデルなど) と、IHV コンポーネントを Windows に読み込む方法の詳細については説明しません。

設計原則

次の原則は、このプロトコルのモデルと設計全体を導き出しました。

  1. ホスト コンポーネントと IHV コンポーネント/デバイスの間のトラフィックのチャット性を最小限に抑えます。 これは、本質的におしゃべりな SDIO などのバスでの実装に特に重要です。
  2. Wi-Fi 機能 (特に低待機時間で実行する必要がある機能) は、デバイスによって処理されることが期待されます。
  3. すべての規制関連機能は IHV コンポーネントに存在し、IHV によって制御されます。
  4. Windows エクスペリエンスは、ホスト コンポーネントと Windows オペレーティング システムによって制御されます。
  5. Windows には、ハングしたデバイスを再回復する機能があります。 IHV コンポーネントを再プログラミングし、10 秒以内に回復するのに十分な状態があります。
  6. 多くのシステム メモリまたは高速プロセッサを必要とし、ベンダー固有ではない操作は、ホストによって処理されます。

定義

期間 説明

Device

バスに接続するハードウェア全体。 デバイスには複数の無線 (特に Wi-Fi と Bluetooth) を含めることができます。

Wi-Fi アダプター

この仕様で説明されているように、Wi-Fi 機能を実装するデバイスの特定の部分。

ポート

特定の接続の MAC および PHY 状態を表すオブジェクト。

IHV コンポーネント

ホストへの Wi-Fi アダプター/デバイスを表す IHV で開発されたソフトウェア コンポーネント。

Host

この仕様で説明されているインターフェイスを使用して IHV コンポーネントと対話するホスト側の Microsoft/オペレーティング システム ソフトウェア。

上端ドライバー (UE)

UE は、このドキュメントで WDI と呼ばれる WdiWiFi ドライバーを指します。 UE と Lower Edge (LE) IHV ドライバーは、完全な NDIS ミニポート ドライバーに結合されます。 UE は、コア Wi-Fi ロジックを実装します。

下端ドライバー (LE)

LE は、下端の IHV ドライバーを指します。 LE と UE は、完全な NDIS ミニポート ドライバーに結合します。 LE は、バスおよびハードウェア固有の機能を実装します。

機能レベルリセット (FLR)

PCIe 仕様のように、機能レベルのリセット。 この用語は、関数のリセットと、複合関数を持つ可能性がある完全なデバイスのリセットを指します。 このようなスコープをリセットしても、同じデバイス上の他の機能は損なわれません。

プラットフォーム レベル リセット (PLR)

プラットフォーム レベル リセット このリセット方法は、デバイス上のすべての関数に影響します。 コストとフットプリントを削減するために、デバイス上に複数の関数を構築することが非常に一般的です。 たとえば、Bluetooth は通常、チップ上の Wi-Fi を使用して構築されます。 ただし、このようなリセットメソッドは、デバイス上のすべての機能ユニットをリセットします。

リセット回復 (RR)

RR は、リセットと回復のイベント シーケンスを指します。

FLR の場合、これには以下のが含まれます。

  • NDIS への要求。Wi-Fi 関数をリセットするためにバスに要求を転送します。
  • ドライバーによるファームウェア コンテキストの回復。
  • リセット前にアクセス ポイントが接続されていた場合は、アクセス ポイントに再接続します。

PLR の場合、これには以下のが含まれます。

  • NDIS への要求。要求をバスに転送します。 バスは PnP と対話して、デバイスの突然の取り外しに対応します。
  • デバイスの再列挙。
  • デバイス スタックを再確立します。
  • Wi-Fi が再起動され、再接続されます。

WDI コマンド

UE は WDI OID を送信し、LE コールバックを呼び出します。 これらはすべて WDI コマンドと呼ばれます。

MAC アドレスのランダム化

Windows 10 ユーザーのプライバシーを向上させるために、構成された Wi-Fi MAC アドレスは、特定の Wi-Fi ネットワークに接続する前や特定の条件でスキャンを開始する場合など、状況によっては使用されます。 これは、ステーション ポートにのみ適用されます。 システムは、ランダム化が適切に使用されるようにするため、重要な接続シナリオは破損しません。 システムは、スキャンまたは接続コマンドを発行する前に OID_WDI_TASK_DOT11_RESET コマンドを発行することによって、アドレスの変更を管理します。 reset コマンド パラメーターには、省略可能な MAC アドレス引数が含まれます。 引数が存在する場合、MAC アドレスは指定した値にリセットされます。 存在しない場合、MAC アドレスは現在の値に残ります。 ランダム化された MAC アドレスを構成する場合、オペレーティング システムは IEEE802 アドレスについて定義された「ローカルに管理される」形式を使用します。

ECSA

拡張チャネル スイッチ アナウンス。

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