次の方法で共有


モダン スタンバイ プラットフォームに対する Wi-Fi の電源管理

モダン スタンバイ電源モデルを実装する Windows ハードウェア プラットフォームでは、プラットフォームが最新のスタンバイ電源状態にある間、Wi-Fi デバイスからネットワークへの接続は維持されます。 Wi-fiデバイスの正しい電源管理-最新のスタンバイ中とディスプレイがオンになっているときの両方-長いバッテリ寿命を実現するために不可欠です。

Wi-Fi は、コンピューター システム、デバイス、およびインターネット間の高帯域幅で待機時間の短い通信を可能にする、ユビキタスで中規模のワイヤレス テクノロジです。

モダン スタンバイをサポートするすべての Windows ハードウェア プラットフォームには、Wi-Fi デバイスまたはモバイル ブロードバンド (MBB) デバイスを備える必要があります。 Wi-Fi 統合の方が一般的で広範囲にわたるため、Wi-Fi デバイスを有効にし、ほぼすべての時間接続することが期待されます。

概要

モダン スタンバイ プラットフォームの Wi-Fi デバイスは、デバイスとプラットフォーム全体の両方による電力消費を削減するために、いくつかの主要な電源管理機能をサポートする必要があります。

最初の機能-省電力モードと呼ばれる-Wi-fiデバイスは、アクセスポイントに接続されたままの状態で電力消費量を減らすことができます。 省電力モードでは、データ転送の待機時間が長くなる代償として電力消費が削減されます。 短い待機時間での接続が必要な場合 (VOIP 呼び出しの場合など) を除き、プラットフォームがバッテリ電源で実行されている場合は、常に省電力モードが有効になります。 詳細については、 「Wi-Fi 自動省電モード」を参照してください。

2 つ目の重要な電源管理機能は、パターンマッチ ウェイクです。 この機能により Windows では、格納されているパターンに一致するネットワーク パケットを Wi-Fi デバイスが検出すると、Wi-Fi デバイスがチップ (SoC) でシステムをウェイクアップできます。 パターンマッチ ウェイクは、モダン スタンバイ中にのみ動作します。 パターンマッチ ウェイクが有効になっている間、Wi-Fi デバイスは非常に低電力のモードで動作し、特定のシステム サービスまたは登録済みアプリケーション (プッシュ通知や電子メールなど) 宛ての受信データをリッスンします。 一方、ハードウェア プラットフォームの他のコンポーネントは低電力状態です。 詳細については、「ネットワークのウェイクアップ イベント」を参照してください。

さらに、モダン スタンバイ プラットフォームの Wi-Fi デバイスを使用するには、次の実行時の電源管理機能をサポートする必要があります:

この記事では、セキュリティで保護されたデジタル入出力 (I/O) (SDIO) または PCI Express (PCIe) バスを使用して SoC に接続されている、または SoC 自体に物理的に統合されている、モダン スタンバイ プラットフォームの Wi-Fi デバイスの設計について説明します。 Microsoft では、モダン スタンバイ プラットフォームのユニバーサル シリアル バス (USB) 経由で接続する Wi-Fi デバイスはテストを行っておらず、そのようなデバイスの設計についてガイダンスを発行していません。

Wi-Fi デバイスは、Wi-Fi デバイス ベンダーが提供する Wi-Fi ミニポート ドライバーによって管理されます。 Windows では、省電モードとパターンマッチ ウェイクを構成するために、デバイスに電源管理要求 (NDIS OIDs) を発行します。 Windows は、プラットフォームがモダン スタンバイに入って終了すると、パターンマッチ ウェイクを有効または無効にします。 Wi-Fi ミニポート ドライバーは、SDIO、PCIe、または独自の SoC バスを使用して Wi-Fi デバイスを構成することで、これらの要求を処理します。

モダン スタンバイ プラットフォームの Wi-Fi デバイスは、ほとんど常に電源が入り、電力効率が非常に高いと予想されます。 Wi-Fi リンクを使用して転送されるデータがなく電源節約モードが有効になっている場合、Wi-Fi デバイスが消費する電力は平均で 10 ミリワット未満である必要があります。 ユーザーが機内モードを有効にするか、Windows 設定アプリケーションで Wi-Fi を明示的にオフにすることでラジオのオン/オフ状態をオフに設定した場合、Wi-Fi デバイスが消費する電力量は平均で 1 ミリワット未満である必要があります。

デバイスの電源管理モード

Wi-Fi デバイスは、いくつかの電源管理モードをサポートする必要があります。 各モードは、デバイス アクティビティ、ネットワーク接続、パターンマッチ ウェイクの有効化の組み合わせです。

アクティブ

Wi-Fi デバイスはネットワークに接続されており、データをアクティブに送信しています。

切り替えメカニズム: Wi-Fi デバイスハードウェアは、接続されたアイドルモードからアクティブモードに自律的に移行します。

接続されたアイドル状態

Wi-Fi デバイスはネットワークに接続されていますが、データをアクティブに送信していません。

切り替えメカニズム:

  • Wi-Fi デバイスハードウェアは、接続されたアイドルモードからアクティブ モードに自律的に移行します。
  • アクティブ モードでのデバイスの電力消費量は、ワイヤレス テクノロジ (802.11 a/b/g/n)、アクセス ポイントまでの距離、送信されるデータの量などが要因になります。
接続されたスリープ

Wi-Fi デバイスはアクセスポイントに接続されていますが、プラットフォームの残りの部分は非常に低電力状態です。 パターンマッチ ウェイクが有効になっているため、Wi-Fi デバイスは、特定の着信ネットワーク パケットのセットで SoC をウェイクアップします。

切り替えメカニズム:

  • Wi-Fi デバイスが D0 を出る前に、NDIS は、wake on LAN パターンを追加するように Wi-Fi ミニポートドライバーに指示する OID_PM_ADD_WOL_PATTERN 要求を送信します。
  • Wi-Fi ミニポート ドライバーに対してパターンマッチ ウェイクを有効にするように指示するために、NDIS は OID_PM_PARAMETERS 要求を送信します。
  • NDIS は、 NdisDeviceStateD2 (SDIO の場合) または NdisDeviceStateD3 (PCIe の場合) の NDIS_DEVICE_POWER_STATE 値 で OID_PNP_SET_POWER要求を送信します。
切断されたスリープ

優先アクセス ポイントが範囲内にないため、Wi-Fi デバイスは電源が入っていますが、アクセス ポイントに接続されていません。 プラットフォームの残りの部分は、非常に低電力の状態です。 パターンマッチ ウェイクが有効になり、ネットワーク オフロード リストが Wi-Fi デバイスに組み込まれます。 Wi-Fi デバイスは、ネットワーク オフロード一覧を使用して、接続先の優先ネットワークを定期的にスキャンします。

切り替えメカニズム:

  • Wi-Fi デバイスは、ネットワーク オフロード一覧を使用して、接続先の優先ネットワークを定期的にスキャンします。
  • これらの定期的なスキャン中に一致するネットワークが見つかった場合、Wi-Fi デバイスは SoC を解除します。
ラジオをオフ

Wi-Fi デバイスには電力が適用されていますが、ラジオ (RF コンポーネント) の電源がオフになっています。

切り替えメカニズム:

  • D0 では、NDIS は、値が FALSE の OID_DOT11_NIC_POWER_STATE 要求を送信します。これは、ラジオの電源をオフにする必要があることを示します。
デバイスの電源が切れている

Wi-Fi デバイスの電源が完全に切断されています。

切り替えメカニズム:

  • NDIS は、 NdisDeviceStateD3 の NDIS_DEVICE_POWER_STATE 値 で OID_PNP_SET_POWER 要求を送信します。
  • Wi-Fi デバイスが SDIO または PCIe に接続されている場合、システム ACPI ファームウェアは、SoC から Wi-Fi デバイスへの GPIO ラインを使用して、Wi-Fi デバイスの電源をオフにするか、リセットします。
  • Wi-Fi デバイスが SoC に統合されている場合、システム ファームウェアは、独自のメカニズムを使用して、Wi-Fi デバイスの電源をオフにしたりリセットしたりする役割を担います。

平均電力消費と終了待機時間

次の表は、各電源管理モードのアクティブ状態を終了するときの予想される電力消費と待機時間を示しています。 これらの図では、Wi-Fi デバイスが、切断されたスリープモードおよび電源削除モードを除き、WPA2-個人のセキュリティを備えた単一のアクセス ポイントに常時接続していると仮定しています。


デバイスの電源管理モード デバイスの電源状態 平均電力消費量 アクティブまでの終了待機時間
Active mode D0 <= 750 ミリワット 該当なし
接続されたアイドル モード D0 <= 25 ミリワット <= 100 ミリ秒
接続されたスリープ モード SDIO の場合は D2、PCIe の場合は D3 <= 10 ミリワット <= 300 ミリ秒
切断されたスリープ モード SDIO の場合は D2、PCIe の場合は D3 <= 10 ミリワット <= 300 ミリ秒
ラジオオフ モード D0 または D2 <= 1 ミリワット <= 2 秒
電源削除モード (ウェイクが無効) D3 <= 1 ミリワット <= 5 秒

SDIO に接続されているデバイスの場合、D2 は、モダン スタンバイで最も深いウェイク可能デバイスの電源状態です。 PCIe 接続デバイスの場合、D3 (具体的には D3hot 下位部分) は、モダン スタンバイで最も深いウェイク可能デバイスの電源状態です。

Windows 8、Windows 8.1、および Windows 10 は、SDIO バス経由で接続する、非 SoC Wi-Fi デバイスでのモダン スタンバイをサポートしています。 Windows 8.1 は、PCIe バス経由で接続する、非 SoC Wi-Fi デバイスでのモダン スタンバイをサポートしています。

Wi-Fi デバイスが回路を共有する場合の要件

Wi-Fi デバイスの設計によっては、Wi-Fi デバイスが、Bluetooth およびオプションの FM ラジオ通信デバイスでアナログおよび RF 回路を共有します。 これらの Wi-Fi デバイス設計では、Wi-Fi デバイスとその他の統合通信デバイスとの間に電源状態の依存関係があってはなりません。 Wi-Fi デバイスは、ラジオオフ モードで平均電力消費量が 1 ミリワット未満となるように、内部の電源ゲート回路を備えている必要があります。

ソフトウェアの電源管理メカニズム

Wi-Fi デバイスの電源管理は、主に、Wi-Fi ミニポート ドライバーが Windows ネットワーク サブシステムから受信する NDIS コマンドに基づいています。 Wi-Fi ミニポート ドライバーは、これらの NDIS コマンド (OID 要求と呼ばれます) を、I/O バス経由で Wi-Fi デバイスに送信するために、デバイス固有のメッセージに変換します。

NDIS ドライバーの開発は、Wi-Fi デバイスの電源管理を超える複雑なタスクです。 このセクションについては、「 ネイティブ 802.11 ワイヤレス LAN 」トピックを参照してください。 Wi-Fi 開発者は、 Windows ハードウェア認定キットのネットワーク デバイス テストのセットについて理解し、Wi-Fi デバイスとその Wi-Fi ミニポート ドライバーが正しく動作していることを確認するために、これらのテストを事実上の参照として使用する必要があります。

モダン スタンバイ プラットフォームが S5 (シャットダウン) システムの電源状態にある場合を除き、Wi-Fi デバイスは常に電源がオンになっており、ネットワークに接続されている必要があります。 そのため、Wi-Fi デバイスの電源管理を正しく行うことは、モダン スタンバイ時とディスプレイの電源がオンになっているときの両方でシステム バッテリの寿命を長くするために不可欠です。 Wi-Fi デバイスの電源管理モードは、デバイスが新しいネットワークをスキャンするためのソフトウェア要求に応答するか、アクセス ポイントが切断されていることを検出すると、頻繁に変更される可能性があります。 次の説明に記載されているソフトウェアの電源管理メカニズムと、それによる電力消費は、Wi-Fi デバイスが、信号強度が妥当な単一のアクセス ポイントに接続されていることを前提としています。

Wi-Fi ミニポート ドライバーでは、次の主要な電源管理機能を有効にする必要があります。これにより、モダン スタンバイ中とディスプレイが有効になっているときの両方で、Wi-Fi デバイスの電源効率を高めることができます:

次の段落では、これらの 2 つの機能の要件について詳しく説明します。

省電力モードとパターンマッチ ウェイクに加えて、Wi-Fi デバイスと Wi-Fi ミニポート ドライバーは、他のいくつかの機能をサポートしている必要があります。 詳細については、「Wi-Fi 電源管理のその他の要件」を参照してください。

省電力モード

802.11 仕様では、Wi-Fi ネットワークの Wi-Fi 自動省電力モード ( 省電力ポーリング) について説明します。 このモードでは、Wi-Fi ラジオを使用すると、ブロードキャスト ビーコンのサブセットのポーリングがスキップされるため、デバイスの平均電力消費量が減少します。 Windows では、デバイスがアクティブ (d0)、接続アイドル (d0)、または接続されているスリープ (SDIO の場合は D2、PCIe の場合は D3) の電源管理モードにあるときに、Wi-Fi デバイスの省電力モードを有効にする必要があります。 Wi-Fi デバイスが無線オフの電源管理モードであると、省電力モードは意味がありません。

Wi-Fi ミニポート ドライバーは、Wi-Fi デバイスが次の電源管理モードになっている場合に、省電力モードをサポートおよび有効にする必要があります:

  • アクティブ (D0)
  • 接続されたアイドル状態 (D0)
  • 接続されたスリープ モード (D2/D3)

Wi-Fi ミニポート ドライバーは、 DOT11_EXTSTA_ATTRIBUTES構造体のbautopowersavemodeメンバーを TRUE に設定することによって、省電力モードの自動ネゴシエーションがサポートされていることを Windows に報告する必要があります。 この設定に応答して、Windows は Wi-Fi ミニポート ドライバーに OID_DOT11_POWER_MGMT_MODE_AUTO_ENABLED 要求を送信します。 この要求は、自動的に省電力モードを有効にするようにドライバーに指示します。 Wi-Fi ミニポート ドライバーは、リモート アクセス ポイントと Wi-Fi デバイス自体の機能を使用して、適切な省電力レベルを有効にするよう決定する必要があります。

自動省電力モードが有効になっている場合、Windows は Wi-Fi ミニポート ドライバーに OID_DOT11_POWER_MGMT_REQUEST 要求を送信することがあります。 このメッセージは、4 つの定義された省電力レベルのうちの 1 つを指定します。 このメッセージの省電力レベルは、現在の時刻にオペレーティング システムまたはユーザーが期待する電力削減のために Wi-Fi ミニポート ドライバーへのヒントとして扱う必要があります。 OID_DOT11_POWER_MGMT_REQUEST 要求によって返される値は、リモート アクセス ポイントが省電力モードをサポートしていることをドライバーが検出できない場合に使用できます。

パターン マッチ ウェイク

Windows では、モダン スタンバイ プラットフォームのすべてのネットワーク デバイスが、パターンマッチ ウェイクをサポートする必要があります。 この機能により、ネットワーク デバイスは、(受信パケットをデバイスに格納されているパターンと比較して) 興味深いパケットのネットワーク接続を監視し、SoC またはチップセットの電源をオフにして、一致するパターンが検出されたときに SoC またはチップセットのメイン プロセッサをウェイクアップできます。 メイン プロセッサからの Wi-Fi 処理をオフロードする機能は、モダン スタンバイで低電力操作を実現するための鍵となります。 プラットフォームがモダン スタンバイに入り、Wi-Fi デバイスが接続されたスリープ (SDIO の場合は D2、PCIe の場合は D3) モードに切り替わる前は、Wi-Fi デバイスが監視する必要のある興味深いパターンのコレクションを Windows から Wi-Fi ミニポート ドライバーに送信します。

パターンマッチ ウェイクは、モダン スタンバイ機能を有効にする鍵です。 Wi-Fi デバイスが接続されたスリープ (D2/D3) モードであると、パターンマッチ ウェイクが有効になります。 Wi-Fi デバイスがこのモードに入る前に、Windows は、指定されたパターンのセットに一致するものを除くすべてのネットワーク パケットを無視するようにデバイスに指示します。 Windows は、現在使用されているサービスとアプリケーション (プッシュ通知や電子メールなど) に基づいて、一致するパターンを作成します。 パターン マッチングを Wi-Fi デバイスにオフロードすると、ハードウェア プラットフォームの残りの部分をオフにしたり、低電力モードで動作させたりすることができます。 一方、Wi-Fi デバイスはオンのままになり、重要な着信ネットワーク トラフィックを待機します。

パターンマッチ ウェイクをサポートするには、Wi-Fi ミニポート ドライバーが、接続されたスリープ (D2/D3) モードをサポートしていること、および D2/D3 の電源状態からシステムをウェイクできることを最初に通知する必要があります。 パターンマッチ ウェイクのサポートを通知するには、Wi-Fi ミニポート ドライバーで次の操作を行う必要があります:

  • NDIS_PM_CAPABILITIES 構造体のSupportedWoLPacketPatterns メンバーに NDIS_PM_WOL_BITMAP_PATTERN ビットを設定して、Wi-Fi デバイスがビットマップ パターン検出に基づく SoC のウェイクアップをサポートしていることを示します。

  • NDIS_PM_CAPABILITIES 構造体の MinPatternWakeUp メンバーを NdisDeviceStateD2 (SDIO の場合) または NdisDeviceStateD3 (PCIe の場合) に設定して、デバイスが D2/D3 の電源状態で、一致するパターンが検出されたときに、Wi-Fi デバイスが SoC をウェイクできることを示します。

  • NDIS_PM_CAPABILITIES 構造体の NumTotalWoLPatterns メンバーを 10 進数で 22 (またはそれ以上) の値に設定します。 この値は、Windows が、SoC をウェイクするために、最大 22 (またはそれ以上) の一意の一致パターンを使用して、Wi-Fi デバイスをプログラミングできることを示します。

  • NDIS_PM_CAPABILITIES 構造体の Flags メンバーに NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED ビットを設定します。 このフラグは、Wi-Fi デバイスが、Wi-Fi デバイスが SoC をウェイクする原因となったパケットの格納と取得をサポートしていることを示します。

システム サービスまたはホストされるアプリケーションでパターンマッチ ウェイクのサポートが必要であることが最初に検出されると Windows は、OID_PM_ADD_WOL_PATTERN 要求を Wi-Fi ミニポート ドライバーに送信して、一致するパターンを指定します。 この要求は、Wi-Fi デバイスが接続されたスリープ (D2/D3) モードに移行する前に適切に送信されます。

パターンマッチ ウェイクが有効になっている接続済みスタンバイを開始する

ハードウェア プラットフォームがモダン スタンバイ状態になると、Windows によって NdisDeviceStateD2 (SDIO) または NdisDeviceStateD3 (PCIe の場合) のデバイスの電源状態を指定する OID_PNP_SET_POWER 要求を送信され、Wi-Fi デバイスが接続されたスリープ (SDIO の場合は D2、PCIe の場合は D3) に移行されます。 この要求に対する応答として、Wi-Fi ミニポート ドライバーは次の操作を行う必要があります:

  1. 基になるバス ドライバーまたはハードウェアへの新しい I/O 要求の送信を停止します。 Wi-Fi デバイスが SoC の外部にあり、SDIO 経由で接続されている場合は、基になるバス ドライバーが Windows SD バス ドライバーである Sdbus.sys になります。 Wi-Fi デバイスが SoC の外部にあり、PCIe 経由で接続されている場合は、基になるバス ドライバーが Windows PCI バス ドライバーである Pci.sys になります。 Wi-Fi デバイスが SoC に統合されている場合、基になるバスドライバーは SoC ベンダーによって提供されます。

  2. すべてのインフライト I/O 要求を待機し、すべてのキューに入っている I/O 要求を完了します。

  3. 構成されたすべてのウェイク パターンとウェイク イベントの Wi-Fi デバイスをプログラミングします。

  4. 接続されているスリープ モードで、Wi-Fi デバイスを適切な低電力状態 (D2/D3) に切り替えます。

  5. Wi-Fi デバイスが SoC の外部にあり、SDIO バス経由でアタッチされている場合:

    1. 帯域外の GPIO ウェイク割り込みを使用して SoC をウェイクするように Wi-Fi デバイスを構成します。 (詳細については、「サポートされているハードウェアの電源構成」を参照してください。)

    2. Wi-Fi デバイスの割り込みをマスクし、関連するすべてのタイマーをキャンセルします。 Wi-Fi ミニポート ドライバーでは、 Sdbussubmitrequest ルーチンを呼び出すことによって、 SDP_FUNCTION_INT_ENABLE プロパティを FALSE に設定する必要があります。

    3. SD バス ドライバーに Wi-Fi デバイスの割り込みの転送を停止するように指示します。 Wi-Fi ミニポート ドライバーでは、 SdBusSubmitRequest ルーチンを呼び出すことによって、 SDP_SET_CARD_INTERRUPT_FORWARD プロパティを FALSE に設定する必要があります。

    4. NdisDeviceStateD2 状態の OID_PNP_SET_POWER 要求を完了します。

  6. Wi-Fi デバイスが SoC の外部にあり、PCIe バス経由でアタッチされている場合:

    1. Wi-Fi デバイスが、PCIe 標準に従ってシステムをウェイクするように構成します (PM_PME メッセージを使用します。これについては、次のセクションで詳しく説明します)

    2. Wi-Fi デバイスの割り込みをマスクします。 Wi-Fi ミニポート ドライバーは、 IoDisconnectInterruptEx ルーチンを呼び出すことによって、割り込みを切断する必要があります。

    3. NdisDeviceStateD3 状態の OID_PNP_SET_POWER 要求を完了します。

Wi-Fi デバイスが接続されたスリープ モードの場合、デバイスは、関連付けられた Wi-Fi ネットワークへの接続を維持し、一致するウェイク パターンを確認し、ネットワーク状態の変更が発生したときに SoC をウェイクします。 たとえば、アクセス ポイントの関連付けが突然解除される場合、Wi-Fi デバイスは SoC をウェイクできる必要があります。

次の図は、SoC の外部にあり、SDIO バスを介して SoC と通信する Wi-Fi デバイスをサポートするためのソフトウェアおよびハードウェアコンポーネントの構成を示しています。 a wi-fi device that is connected via sdio

一致するパターンに対してモダン スタンバイを終了する

Wi-Fi デバイスは、パターンが一致するパケットを検出すると、後で Wi-Fi ミニポート ドライバーで取得できるよう、まずこのパケットをローカルの不揮発性ストレージに保存します。 Windows によって、適切なシステム サービスまたはアプリケーションに着信パケットが通知されるよう、ドライバーはパケットに関する情報を取得します。

次に、Wi-Fi デバイスは、SoC をウェイクするための割り込みを生成する必要があります。

Wi-Fi デバイスが SDIO ポートの SoC の外部にある場合、割り込みは帯域外の GPIO 割り込みを介して配信され、SoC がウェイクされます。 次に、ACPI サブシステムは、Wi-Fi デバイスの GPIO 割り込みによって SoC がウェイクされたことを判断し、Wi-Fi ミニポート ドライバーに代わって、NDIS ポート ドライバーが ACPI ドライバーで自動的に保留のままになっている待機ウェイク IRP ( IRP_MN_WAIT_WAKE 要求) を完了することで応答します。

Wi-Fi デバイスが PCIe バス上の SoC の外部にある場合、ACPI ファームウェアがネイティブの PCIe 機能の制御をオペレーティング システムに付与すると、次の手順を使用して、PCIe の仕様に従ってウェイク イベントが処理されます:

  1. Wi-Fi デバイスが低電力状態になると、NDIS ポート ドライバーから、Wi-Fi ドライバー スタックから受信トレイ PCI バス ドライバーにウェイク待機 IRP が自動的に送信されます。これは Pci.sys (ACPI ドライバーの Acpi.sys ではありません) で、IRP を今後のウェイク イベントのために保留中としてマークします。

  2. Wi-Fi デバイスをウェイクする必要がある場合は、PCIe 階層のルートへのウェイク通知を生成する必要があります。 これを行うために、デバイスは PCIe バス経由で帯域内 PM_PME メッセージを送信します。

  3. ウェイク通知は、Wi-Fi デバイスの上にある PCIe 階層のルート ポートにルーティングされます。 ルート ポートは D0 の電源状態にあり、受信トレイの PCI バス ドライバー Pci.sys に対する PME 割り込みが生成されることが予想されます。

  4. ルート ポートの PCI バス ドライバーは、ルート ポートの下にあるデバイス階層全体を D0 に戻します。

  5. PCI バス ドライバーは、階層内の各デバイスの PME_Status ビットを調べて、ウェイク通知が発行されたかどうかを判断します。 Wi-Fi デバイスの PMEStatus ビットが設定されている場合、PCI バス ドライバーは、そのデバイスに対して保留中の未処理のウェイク待機 IRP を完了させます。これにより、手順 1 で保留中の IRP が NDIS に返されます。

詳細については、「LAN 上でのウェイクのための低電力」を参照してください。

Wi-Fi デバイスが SoC に統合されている場合、デバイスの操作は、SoC がオフの SDIO ポート実装について説明されているものと似ています。 SoC ベンダーは、ACPI ファームウェアの DSDT テーブルでデバイスを記述する必要があります。 次に、ACPI サブシステムが Wi-Fi デバイスを列挙し、ウェイク待機 IRP を完了します。 Wi-Fi デバイスが統合されている、SoC を使用するシステム インテグレーターは、Wi-Fi デバイスの統合とドライバーの開発について SoC ベンダーと密接に連携することをお勧めします。

ウェイク待機 IRP が完了すると、NDIS は最初に D0 IRP (DevicePowerState タイプの IRP_MN_SET_POWER 要求) をスタックからバス ドライバーに送信します。 D0 IRP を完了する前に、NDIS は Wi-Fi ミニポート ドライバーに、ターゲットの状態が NdisDeviceStateD0 である OID_PNP_SET_POWER要求を送信します。 その応答として、Wi-Fi ミニポート ドライバーは次の操作を行う必要があります:

  1. Wi-Fi デバイスのハードウェアを調べて、ウェイクアップ割り込みの理由を判断します。 Wi-Fi ミニポートドライバーは、 NDIS_STATUS_PM_WAKE_REASON ステータス イベントを生成することによって、ウェイク割り込みの理由を NDIS に通知する必要があります。 Wake 割り込みが着信ネットワーク パケットに起因する場合、ドライバーは、他の受信パケットを NDIS に渡す前に、通常の NDIS データパスを介してこのパケットを NDIS に渡す必要があります。

  2. Wi-Fi デバイスから接続アイドル (D0) モードへの切り替えを完了するために必要な登録状態またはその他のハードウェア コンテキストを復元します。

  3. Wi-Fi デバイスが SoC の外部にあり SDIO 経由で接続されている場合、Wi-Fi ミニポートドライバーは次のことを行う必要があります:

    1. SD バス ドライバーに対して、Wi-Fi ミニポート ドライバーに割り込みを転送するように指示します。 Wi-Fi ミニポート ドライバーでは、 SdBusSubmitRequest ルーチンを呼び出すことによって、SDP_SET_CARD_INTERRUPT_FORWARD プロパティを TRUE に設定する必要があります。

    2. Wi-Fi デバイスの割り込みをマスクします。 Wi-Fi ミニポート ドライバーでは、 SdBusSubmitRequest ルーチンを呼び出すことによって、 SDP_FUNCTION_INT_ENABLE プロパティを TRUE に設定する必要があります。

  4. IRP_MN_SET_POWER 要求を完了します。

モダン スタンバイ中にネットワーク接続を維持するには、パターンマッチ ウェイクと、低電力アイドル状態から SoC をウェイクする機能が不可欠です。 Wi-Fi ドライバー開発者は、Microsoft と密接に連携して、これらの必要な機能を実装する Wi-Fi ミニポート ドライバーを開発する必要があります。

Wi-Fi の電源管理に関するその他の要件

Wi-Fi デバイスとミニポート ドライバーは、省電力モードとパターンマッチ ウェイクに加えて、モダン スタンバイ プラットフォームの Wi-Fi デバイス用に、他のいくつかのランタイム電源管理機能をサポートしている必要があります。 これらの機能は、Wi-Fi デバイスと全体的なハードウェア プラットフォームで電力消費を削減するために不可欠です。 既に説明したように、Wi-Fi デバイスとミニポート ドライバーは、次の機能をサポートしている必要があります:

ラジオのオン/オフの状態

Wi-Fi ミニポート ドライバーは Windows 要求に応答して、Wi-Fi デバイスのラジオのオン/オフの状態を変更する必要があります。 ユーザーは、機内モードを有効にするか、Windows 設定アプリケーションで Wi-Fi を明示的にオフにすることでラジオのオン/オフ状態をオフに設定できます。

ユーザーが Wi-Fi デバイスのオン/オフ状態をオフに変更すると、Windows は、値が FALSEの OID_DOT11_NIC_POWER_STATE 要求を Wi-Fi ミニポート ドライバーに送信します。 応答として、Wi-Fi ミニポート ドライバーは、帯域内メッセージを使用して、Wi-Fi デバイスの無線 (RF サブシステム) から電力を取り外し、平均で 1 ミリワットを超えない電力状態にデバイスを配置する必要があります。

ユーザーが Wi-Fi デバイスのオン/オフ状態をオンに変更すると、Windows は、値が TRUE の OID_DOT11_NIC_POWER_STATE 要求を Wi-Fi ミニポート ドライバーに送信します。 応答として、Wi-Fi ミニポート ドライバーは帯域内メッセージを使用して、Wi-Fi デバイスのラジオに電力を適用し、デバイスを接続アイドル状態の電源モードに戻す必要があります。

Wi-Fi デバイスのラジオのオン/オフ状態がオフに設定されている場合、Wi-Fi デバイスは、D0 または D2 のいずれかの電源状態になります。 NDIS は、Wi-Fi デバイスを常に D0 電源状態に移行してから、ラジオがオン/オフ状態の変更を Wi-Fi ミニポート ドライバーに通知します。 ユーザーが以前にラジオのオン/オフをオフに設定していた場合、Wi-Fi ミニポート ドライバーは、ハードウェア プラットフォームがモダン スタンバイ状態になったときに特定の操作を行う必要はありません。 ラジオのオン/オフ状態がオフに設定されている場合、ラジオはモダン スタンバイではオフのままになり、システムがモダン スタンバイを終了した後も、ユーザーが状態をオンに変更するまでは、ラジオのオン/オフの状態がオフに設定されます。

ネットワーク リスト オフロード (NLO)

ネットワーク リスト オフロード (NLO) 機能を使用すると、Wi-Fi プロファイル情報を Wi-Fi デバイスのローカル ストレージにコピーできます。 Wi-Fi デバイスは、すべてのアクセス ポイントで利用可能なすべてのチャネルをスキャンするのではなく、このプロファイル情報を使用して、優先されるネットワーク用に限られた数のチャネルをスキャンし、Wi-Fi デバイスで消費される電力を減らします。 モダン スタンバイ プラットフォームの Wi-Fi デバイスと Wi-Fi ミニポート ドライバーは、ネットワーク リスト オフロードをサポートしている必要があります。 このサポートには、 OID_DOT11_OFFLOAD_NETWORK_LIST 要求の処理が含まれます。

NLO 機能を通知するには、Wi-Fi ミニポート ドライバーで、NDIS_PM_CAPABILITIES構造体の MediaSpecificWakeUpEvents メンバーの NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED フラグを設定する必要があります。

ARP/NS オフロード

Wi-Fi ミニポート ドライバーおよび Wi-Fi デバイスは、ARP/NS オフロードをサポートする必要があります。これにより、Wi-Fi デバイスは、一般的なネットワーク要求に自律的に応答できます。 ARP/NS オフロード機能を使用すると、単純で予測可能な応答を持つ一般的なネットワーク要求の SoC のウェイクが回避されます。 ARP/NS オフロードのサポートを示すには、Wi-Fi ミニポート ドライバーで、 NDIS_PM_CAPABILITIES 構造体のSupportedProtocolOffloadsメンバーに NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED と NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED のフラグを設定する必要があります。

さらに、Wi-Fi ミニポート ドライバーと Wi-Fi デバイスは、少なくとも 1 つの IPv4 ARP オフロード アドレスと、少なくとも 2 つの DIPv6 NS オフロード アドレスをサポートする必要があります。 Wi-Fi ミニポート ドライバーでは、 NDIS_PM_CAPABILITIES 構造体の NumArpOffloadIPv4Addresses メンバーを 1 以上の値に設定する必要があります。 Wi-Fi ミニポート ドライバーでは、 NDIS_PM_CAPABILITIES 構造体の NumNSOffloadIPv6Addresses メンバーの値を 2 以上に設定する必要があります。 Windows は、OID_PM_ADD_PROTOCOL_OFFLOAD 要求を使用して、ARP および NS オフロード アドレスを Wi-Fi ミニポート ドライバーに提供します。

D0 パケット結合

Wi-Fi デバイスと Wi-Fi ミニポート ドライバーは、D0 パケット結合をサポートする必要があります。これは、Wi-Fi デバイスが SoC によるバッチ取得のために、一般的で優先順位の低いネットワーク パケットをバッチ処理できるようにする機能です。 この機能により、コア チップセット割り込みの全体的な数量と頻度が減少し、SoC が低電力の状態を維持し、バッテリの寿命を延長できるようになります。 Wi-Fi ミニポート ドライバーは、 NDIS_RECEIVE_FILTER_CAPABILITIES 構造体の複数の値を設定することによって、D0 パケット結合のサポートを通知します。

次のメンバーの一覧は、D0 のパケット結合機能をまとめたものです。Wi-Fi デバイスがサポートする必要があり、Wi-Fi ミニポート ドライバーに報告する必要があるものです。 Wi-Fi ミニポート ドライバーでは、これらの機能を NDIS_RECEIVE_FILTER_CAPABILITIES 構造体で指定する必要があります。 メンバーごとに、この構造体の特定のメンバーに必要な最小値が一覧表示されます。 NDIS は、Wi-Fi ミニポートドライバーに OID_RECEIVE_FILTER_SET_FILTER 要求を送信して、パケット結合フィルターを設定します。 パケット結合フィルターは、Wi-Fi デバイス上の結合バッファーにバッチ処理する必要があるパケットを示します。

SupportedQueueProperties

NDIS_RECEIVE_FILTER_PACKET_COALESCING_SUPPORTED_ON_DEFAULT_QUEUE

メモ   このフラグは、ハードウェアの機能を示すために常に HardwareReceiveFilterCapabilities に存在している必要があります。 このフラグは、 * PacketCoalescing の高度なキーワードが 0 以外の場合にのみ、 CurrentReceiveFilterCapabilities に存在する必要があります。
EnabledFilterTypes、最小値:

NDIS_RECEIVE_FILTER_PACKET_COALESCING_FILTERS_ENABLED

SupportedFilterTests、最小値:

NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_EQUAL_SUPPORTED
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_NOT_EQUAL_SUPPORTED
NDIS_RECEIVE_FILTER_TEST_HEADER_FIELD_MASK_EQUAL_SUPPORTED

SupportedHeaders、最小値:

NDIS_RECEIVE_FILTER_MAC_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_IPV4_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_IPV6_HEADER_SUPPORTED
NDIS_RECEIVE_FILTER_UDP_HEADER_SUPPORTED

SupportedMacHeaderFields、最小値:

NDIS_RECEIVE_FILTER_MAC_HEADER_DEST_ADDR_SUPPORTED
NDIS_RECEIVE_FILTER_MAC_HEADER_PROTOCOL_SUPPORTED
NDIS_RECEIVE_FILTER_MAC_HEADER_PACKET_TYPE_SUPPORTED

SupportedARPHeaderFields、最小値:

NDIS_RECEIVE_FILTER_ARP_HEADER_OPERATION_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_SPA_SUPPORTED
NDIS_RECEIVE_FILTER_ARP_HEADER_TPA_SUPPORTED

SupportedIPv4HeaderFields、最小値:

NDIS_RECEIVE_FILTER_IPV4_HEADER_PROTOCOL_SUPPORTED

SupportedIPv6HeaderFields、最小値:

NDIS_RECEIVE_FILTER_IPV6_HEADER_PROTOCOL_SUPPORTED

SupportedUdpHeaderFields、最小値:

NDIS_RECEIVE_FILTER_UDP_HEADER_DEST_PORT_SUPPORTED

MaxFieldTestsPerPacketCoalescingFilter、最小値:

5

MaxPacketCoalescingFilters、最小値:

10

NDIS は、これらのフィルターが不要になったときに、以前に設定されたパケット結合フィルターをクリアするために OID_RECEIVE_FILTER_CLEAR_FILTER 要求を送信します。 NDIS では、個々のパケット結合フィルターを動的に設定およびクリアできます。 Wi-Fi ミニポート ドライバーは、現在のパケット結合フィルターのセットを常に追跡する必要がありますが、Wi-Fi デバイスが D0 の電源状態にある場合にのみ結合を適用できます (アクティブ モードまたは接続されたアイドル モードのいずれか)。

動的 DTIM 構成

Wi-Fi ミニポート ドライバーは、 配信トラフィック表示メッセージ (DTIM) 間隔の動的構成をサポートしている必要があります。 接続されたスリープ (SDIO の場合は D2、PCIe の場合は D3) モードでDTIM 間隔を動的に大きい値に調整すると、アクセス ポイントへの接続を継続的に維持しながら、Wi-Fi デバイスの電力消費をごくわずかにすることができます。 DTIM 間隔が長い結果として発生する追加の待機時間は、接続スリープ (D2/D3) モードでは重要ではありません。

Wi-Fi ミニポート ドライバーは、次のガイダンスを実装することで、動的な DTIM 間隔をサポートする必要があります:

  • Wi-Fi デバイス (STA モード) では、アクセス ポイントにリッスン間隔の値 10 を提供する必要があります。 この値により、Wi-Fi クライアントのデータを 10 ビーコン間隔でキャッシュするアクセス ポイントが強制的に適用されます。

  • Wi-Fi デバイスが接続されたスリープ (D2/D3) モードに入るように準備するには、ドライバーが DTIM 間隔の長さを約 500 ミリ秒に変更する必要があります。 指定する DTIM 値は、通常の トラフィック通知メッセージ (TIM) の値によって異なります。 たとえば、TIM が現在 100 ミリ秒の場合、Wi-Fi デバイスでは DTIM 値 5 (500 ミリ秒間隔) を使用する必要があります。 たとえば、TIM が現在 300 ミリ秒の場合、Wi-Fi デバイスでは DTIM 値 2 (600 ミリ秒間隔) を使用する必要があります。

Wi-Fi デバイスが、接続されたアイドル (D0) モードに移行すると、Wi-Fi デバイスは、アクセス ポイントでネゴシエートされた元の DTIM に戻す必要があります。

接続ウェイク トリガーの Wi-Fi

モダン スタンバイ中に Wi-Fi デバイスがネットワークに接続されている場合、Wi-Fi デバイスと Wi-Fi ミニポート ドライバーは、一連の Wi-Fi 接続ウェイク トリガーに基づく SoC のウェイクもサポートする必要があります。 要件は次のとおりです。

  • モダン スタンバイで、GTK (WPA/WPA2) と IGTK 更新 (WPA2) を実行します。
  • GTK および IGTK ハンドシェイク エラーでのウェイクをサポートします。
  • 802.1 x の EAP 要求/ID パケットを受信したときに、ウェイクをサポートします。
  • 4方向ハンドシェイク要求を受信したときに、ウェイクをサポートします。
  • 現在のアクセスポイントで wake-on-association-lost をサポートします。

これらの Wi-Fi 固有のイベントで SoC をウェイクすると、Wi-Fi 接続が危険にあるとき、または Wi-Fi デバイスが関連するアクセスポイントへの接続を失ったときに Windows に通知されるようになります。 応答として、Windows は Wi-Fi ミニポート ドライバーとデバイスに対して、代替 Wi-Fi ネットワークへの接続を指示する場合があります。 または、Windows は代わりにモバイル ブロードバンド (MBB) ラジオを使用して接続を確立することがあります。 Wi-Fi ミニポート ドライバーでは、NDIS_PM_CAPABILITIES構造体のSupportedWakeUpEventsメンバーで、これらのウェイク トリガー機能をそれぞれ指定する必要があります (たとえば、NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED フラグを設定します)。

サポートされているハードウェア電源構成

Windows は、モダン スタンバイ プラットフォームの Wi-Fi デバイスに対して、3 つのハードウェア電源管理構成をサポートしています。 Wi-Fi デバイスは、SoC の外部にあり、SDIO 経由または PCIe 経由でアタッチされているか、SoC チップに物理的に統合され、独自の内部バスを介して接続されている必要があります。

システム デザイナーは、USB バス接続を使用して、モダン スタンバイ プラットフォームで Wi-Fi デバイスを統合することはできません。

SoC の外部 (SDIO 経由でアタッチ)

前のブロック図に示されているこの構成では、Wi-Fi デバイスは SoC の外部にあり、SDIO バスを介して SoC に接続されています。 Wi-Fi デバイスには、SoC の GPIO ピンに接続されているピンが 1 つ以上存在する場合があります。 Wi-Fi デバイスは、常に電源がオンになっている電源レールにアタッチされているか、電源管理 IC (PMIC) に直接接続されている必要があります。

Wi-Fi デバイスは、Wi-Fi デバイスの割り込み出力ピンから SoC の GPIO ピンにルーティングされる帯域外信号ラインに対して、ウェイク割り込みを生成できる必要があります。 デバイスからの割り込みラインは SoC の常時オンの GPIO ピンに接続されている必要があります。これにより、Wi-Fi デバイスのウェイク信号は、モダン スタンバイ中に、最も低い電源状態から SoC をウェイクできます。 システムインテグレーターは、ACPI GpioInt マクロを使用して、ACPI 名前空間の Wi-Fi デバイスの GPIO 割り込み接続を記述する必要があります。 GpioInt マクロの Shared フィールドを ExclusiveAndWake に設定して、GPIO 割り込みがスリープ状態からシステムをウェイクできることを示す必要があります。 ExclusiveAndWake 設定を使用すると、ACPI ドライバーは、Wi-Fi デバイスのウェイク待機 IRP を自動的に完了し、デバイスが SoC に割り込むときに接続されたスリープ (D2) モードである場合、デバイスを接続アイドル (D0) モードに戻すことができます。 ACPI ファームウェアは、Wi-Fi デバイスが、接続スリープ (D2) モードからプラットフォームをウェイクできることを示している必要があります。 これを行うには、次の例に示すように、システム インテグレーターに、_S4W と _S0W の両方のオブジェクトを Wi-Fi デバイスの ACPI 名前空間に含める必要があります:

    Name(_S0W, 2)
    Name(_S4W, 2)

この例の値 2 は、D2 デバイスの電源状態を示しています。

オプションとして、Wi-Fi デバイスは、SoC の GPIO 出力ピンからの有効化信号またはリセット信号を受け入れる入力ピンを持つことができます。 GPIO ピンはシステム ファームウェアによって制御されます。 GPIO ピンは、Wi-Fi デバイスの電源を完全に切るかリセットするように切り替えることができます。 このような GPIO ピンを使用して Wi-Fi デバイスを有効化またはリセットする場合、システム インテグレーターはこのピンを GPIO 操作領域に公開する必要があります。 システム インテグレーターには、ACPI 名前空間の Wi-Fi デバイスの下に _PS0 および _PS3 制御メソッドも含まれている必要があります。

_PS3 メソッドの実装では、GPIO 操作領域を介して GPIO 出力ピンの状態を変更することによって、Wi-Fi デバイスの電源を切るかリセットする必要があります。 Wi-Fi デバイスに特定のリセット タイミング要件がある場合、システム インテグレーターは、ACPI スリープ方式を使用して、実行を遅延させるか、指定した時間に対して必要な信号レベルにリセットするために、これらの要件を ACPI ファームウェアに実装する必要があります。

_PS0 制御メソッドを実装するには、Wi-Fi デバイスに電力を確実に適用し、デバイスを動作可能にする必要があります。

SoC の外部 (PCIe 経由でアタッチ)

この構成では、Wi-Fi デバイスは SoC の外部にあり、PCIe バスにアタッチされています。 デバイスは、接続スリープ モードまたは非接続スリープ モードで動作しているときに、D3 デバイスの電源状態にあります。 D3 では、デバイスは D3hot 下位状態のままで、D3cold 下位状態には入りません。 Wi-Fi デバイスは、常に電源がオンになっているシステム電源レールにアタッチされているか、システム電源管理 IC (PMIC) に直接接続されている必要があります。

メモ    Wi-Fi ハードウェアでは、ウェイク イベント (PME) を生成するための PCI アーキテクチャの手段を使用する必要があります。

D3 の場合、デバイスは、PCIe バス経由で帯域内に伝達される PM_PME メッセージを送信することによって、ウェイク イベントを通知できる必要があります。 ウェイク イベントによって、PCIe ルート ポートから割り込みが生成されます。この割り込みは、受信トレイ PCI バス ドライバー Pci.sys によって処理されます。

ネイティブ PCIe 機能からオペレーティング システム制御を許可するには、ACPI ファームウェアには、ACPI 名前空間に _OSC コントロール メソッドを含める必要があります。 また、ACPI 名前空間には _S0W オブジェクトを含める必要があります。これは、Wi-Fi デバイスが、接続されているスリープ モードまたは切断されたスリープ モードからプラットフォームをウェイクできることを示します。 このオブジェクトは、ACPI 名前空間の Wi-Fi デバイスの下にあり、次の例に示すように宣言されている必要があります:

    Name(_S0W, 3)

次の図は、SoC の外部にあり、PCIe バスを介して SoC と通信する Wi-Fi デバイスをサポートするためのソフトウェアおよびハードウェアコンポーネントの構成を示しています。

a wi-fi device that is connected via pcie

SoC に統合

Wi-Fi デバイスが SoC に統合されている場合は、Wi-Fi ミニポート ドライバーと専用 SoC バス ドライバー間の密結合が必要です。 このドライバーの実装は、このドキュメントの範囲外です。 ただし、Wi-Fi ミニポート ドライバーは、「ソフトウェアの電源管理機構」に記載されているすべての機能を実装する必要があります。

SoC に直接統合されている Wi-Fi デバイスの ACPI 実装の詳細については、システム インテグレーターに問い合わせてください。

テストおよび検証

Wi-Fi デバイスのテストと検証では、電力消費を直接測定し、パターンマッチ ウェイクが正しく機能することを確認することに注目する必要があります。

デバイスの電力消費量を直接測定することは、Wi-Fi デバイスのテストと検証の重要な部分です。 Wi-Fi デバイスは、プラットフォームが S5 (シャットダウン) システム電源状態でない場合は常に電源がオンになっているため、システム インテグレーターは、さまざまなシステムのシナリオと構成で Wi-Fi の電力消費をテストおよび 検証する必要があります。 次の表に示す 2 種類の接続については、Wi-Fi デバイスの電力消費量を直接測定することをお勧めします。


シナリオ 目標平均電力 Comments
飛行機モード、ラジオがオフ
  • 画面オン、D0 状態
<= 1 ミリワット ディスプレイがオンの場合とモダン スタンバイ中の両方でラジオがオフになる場合があります。 ラジオがオフの場合、D0 と D2 の両方で、電力消費量が平均 1 ミリレット以下である必要があります。
画面がオン、アイドル状態
  • 自動で有効になっている電源節約モード
  • アクティブなデータ転送なし
  • アクセス ポイントのサポート用に構成された DTIM
  • WPA2 - 個人のセキュリティ
<= 10 ミリワット テストは、さまざまなコンシューマー用および商用 Wi-Fi アクセス ポイントに接続されている Wi-Fi デバイスで行う必要があります。
接続されたスリープ
  • 画面がオフ、パターンマッチ ウェイクが有効、D2 状態
  • DTIM を 5 に構成
  • WPA2 - 個人のセキュリティ
<= 10 ミリワット

電源管理チェックリスト

システム インテグレーターと SoC ベンダーは、以下のチェックリストを使用して、Wi-Fi デバイスと Wi-Fi ミニポートの電源管理設計が Windows 8 および Windows 8.1 と互換性を持っている必要があります。

メモWindows ハードウェア認定キットには、Wi-Fi デバイスに確実に Windows 8 および Windows 8.1 と互換性を持たせるための Wi-Fi ドライバー テストの広範なセットが含まれています。 Wi-Fi デバイスのベンダーと Wi-Fi ミニポート ドライバー開発者は、Windows ハードウェア認定キットのテストを確認し、それらを使用して、設計サイクルでドライバーの実装を可能な限り早く検証するようにしてください。

  • Wi-Fi デバイス ベンダーは、次の手順を実行するドライバーを開発する必要があります:

    • パターンマッチ ウェイクをサポートする。
    • 電源節約モードをサポートする。
    • ラジオのオン/オフをサポートする。
    • ネットワーク リスト オフロード (NLO) をサポートする。
    • D0 パケット結合をサポートする。
    • ウェイク オン AP 切断と追加の Wi-Fi ウェイク トリガーをサポートする。
    • ARP/NS オフロードをサポートする。
    • 動的 DTIM 構成をサポートする。
    • Windows ハードウェア認定キットにのすべての該当するネットワーク テストに合格する。
  • Wi-Fi デバイスが SoC の外部にあり SDIO 経由でアタッチされている場合、システム インテグレーターは、Wi-Fi デバイスのハードウェアとファームウェアを開発して次の操作を行う必要があります:

    • Wi-Fi デバイスから、SoC の常時接続 GPIO ピンまで Wi-Fi ウェイク割り込みをルーティングします。

    • [共有] フィールドが ExclusiveAndWake に設定されている ACPI 名前空間の Wi-Fi デバイスの下に GPIOInt マクロを含めます。

    • 深いウェイク状態が D2 で 0x2 である ACPI 名前空間の Wi-Fi デバイスの下に、_S4Wオブジェクトを含めてください。 "Name(_S4W, 2)" と指定します。

    • 最も深いウェイク状態が D2 で 0x2 である ACPI 名前空間の Wi-Fi デバイスの下に、_S0Wオブジェクトを含めてください。 "Name(_S0W, 2)" と指定します。

    • 電源有効化の信号をルーティングするか、SoC 上の GPIO 出力ピンから Wi-Fi デバイスへの信号をリセットします。

    • オプションの電源を有効化について説明するか、GPIO 操作領域の GPIO 出力ピンをリセットします。

    • _PS3 および _PS0 の制御メソッドおよび/または _PRn 電源リソース リファレンスを提供します。 これらのエントリは、ACPI 名前空間の Wi-Fiデバイス下に存在する必要があります。

    • Wi-Fi デバイスから電源を取り除くには、_PS3 メソッドまたは電源リソース メソッドを実装します。

    • Wi-Fi デバイスへの電源を回復するには、_PS0 メソッドまたは電源リソース メソッドを実装します。

    • _PS3 および _PS0 のメソッド実装にデバイス固有の電源オンまたはリセット シーケンスのタイミングを含めます。 ACPI メソッドの実行は、Sleep メソッドを使用して遅延できます。

  • Wi-Fi デバイスが SoC の外部にあり PCIe 経由でアタッチされている場合、システム インテグレーターは、Wi-Fi デバイスのハードウェアとファームウェアを開発して次の操作を行う必要があります:

    • ネイティブ PCIe 機能からオペレーティング システム制御を許可するには、ACPI 名前空間に _OSC コントロール メソッドを含めます。

      最も深いウェイク状態が D3 で 0x3 である ACPI 名前空間の Wi-Fi デバイスの下に、_S4Wオブジェクトを含めてください。 "Name(_S4W, 3)" と指定します。

  • システム インテグレーターは、次の手順を実行して、Wi-Fi デバイスの電源管理が適切であるかテストおよび検証する必要があります:

    • ラジオがオフ モードでの Wi-Fi デバイスの平均電力消費量が 1 ミリワット未満であることを確認します。

    • デバイスがコネクテッド スリープ モード (SDIO の場合は D2、PCIe の場合は D3) または接続アイドル (D0) モードでありアクティブにデータを送信していない場合、Wi-Fi デバイスの平均電力消費量が 10 ミリワット未満であることを確認します。

    • 一致パターンが検出されたとき、Wi-Fi ミニポートが適切にパターンマッチ ウェイクをサポートしており、最も深いアイドル状態から SoC をウェイク可能な状態であることを確認します。

    • デバイスが関連づけられているアクセス ポイントを失った場合に、Wi-Fi デバイスが最も深いアイドル状態から SoC をウェイクアップできることを確認します。

    • Wi-Fi デバイスにより、SoC への偽のウェイクが生成されないことを確認します。

    • Windows Hardware Certification Kit で提供されているテストを使用して、Wi-Fi デバイスがネットワーク リスト オフロード (NLO)、ARP/NS オフロード、および D0 パケット結合が正しく実装されていることを確認します。