電源管理機能のレポート
NDIS 6.20 以降のバージョンの NDIS をサポートするミニポート ドライバーは、初期化中にハードウェア電源管理機能を報告します。 NDIS は、バインド操作中に、上にある NDIS プロトコル ドライバーに現在の機能を報告します。 ただし、NDIS は、プロトコル ドライバーから一部の機能を非表示にすることができます。 たとえば、ユーザーが電源管理機能の一部またはすべてを無効にすると、NDIS によってさまざまな機能が報告される場合があります。
NDIS がプロトコル ドライバーに報告する現在の電源管理機能は、ミニポート ドライバーが NDIS に報告したハードウェア機能と必ずしも同じではないことに注意してください。
NDIS 6.1 以前のミニポート ドライバーが NDIS 6.20 プロトコル ドライバーにバインドされている場合、NDIS は、NDIS 6.20 プロトコル ドライバーでサポートされている形式に電源管理機能を変換します。 NDIS は、NDIS 6.20 ミニポート ドライバーが NDIS 6.1 以前の上にあるドライバーでサポートされている形式に報告する電源管理機能も変換します。
ミニポート ドライバーが報告するハードウェア機能は、INF ファイルの設定で有効または無効にすることができます。 電源管理 INF ファイル設定の詳細については、「電源管理に関する標準化された INF キーワード」を参照してください。
ミニポートの初期化中に、ミニポート ドライバーは、下層ハードウェアの電源管理機能を使用して NDIS_PM_CAPABILITIES 構造体を初期化します。 ミニポート ドライバーは、NDIS_PM_CAPABILITIES 構造体を指す NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES 構造体の PowerManagementCapabilitiesEx メンバーを設定します。
NDIS_PM_CAPABILITIES 構造体には、次の情報が含まれています。
フラグ
NDIS 6.20 の場合、このメンバーは NDIS 用に予約されています。
NDIS 6.30 以降では、次のフラグが定義されています。
NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED
このフラグが設定されている場合、ネットワーク アダプターは、アダプターがウェイクアップ イベントを生成する原因となった受信パケットを保存できます。
この電源管理機能の詳細については、「NDIS ウェイク理由状態表示」を参照してください。
NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED
このフラグが設定されている場合、ミニポート ドライバーは、ネットワーク アダプターの NDIS セレクティブ サスペンドをサポートします。
この電源管理機能の詳細については、「NDIS セレクティブ サスペンド」を参照してください。
SupportedWoLPacketPatterns
ネットワーク アダプターがサポートする wake-on-LAN (WOL) パケット パターンを指定するフラグが含まれています。 たとえば、ネットワーク アダプターは、ビットマップ、WOL マジック パケット、EAP over LAN (EAPOL) 要求識別子メッセージを受信したときに、ウェイクアップ イベントを生成できます。 現在のオペレーティング システムでサポートされているパターンの完全な一覧については、NDIS_PM_CAPABILITIES リファレンス ページを参照してください。
NumTotalWoLPatterns
ネットワーク アダプターがサポートする WOL パターンの総数を含む ULONG 値。 これは、"サポートされている WOL プロトコル パターンの数" と "サポートされている WOL ビットマップ パターンの数" の合計です。
たとえば、ドライバーが 8 つの柔軟なビットマップ パターン、IPv4 TCP SYN (プリセット フィルター経由)、マジック パケットをサポートしている場合は、NumTotalWoLPatterns で 9 を報告します。 (8 ビットマップ + 1 IPv4 TCP SYN = 9)
注: WOL パターンの総数には、マジック パケット ウェイクアップ パターンは含まれません。
WOL プロトコル パターンの詳細については、NDIS_PM_WOL_PATTERN を参照してください。
MaxWoLPatternSize
パターンと比較できる最大バイト数が含まれます。
MaxWoLPatternOffset
MAC ヘッダーの先頭から始まる、検査できるパケットのバイト数が含まれます。
MaxWoLPacketSaveBuffer
ミニポート ドライバーがバッファーに保存し、ドライバー スタックを示すことができる、WOL プロトコル パターンのバイト数が含まれます。
SupportedProtocolOffloads
ネットワーク アダプターがサポートする電源管理プロトコル オフロード機能を指定するフラグが含まれています。 ミニポート ドライバーはこれらのフラグを使って、ネットワーク アダプターの低電力プロトコル オフロード機能を報告します。 たとえば、ネットワーク アダプターは、IPv4 ARP オフロード、IPv6 近隣探索 (NS)、IEEE 802.11 堅牢セキュア ネットワーク (RSN) の 4 方向と 2 方向ハンドシェイクをサポートできます。 現在のオペレーティング システムでサポートされているプロトコル オフロードの完全な一覧については、NDIS_PM_CAPABILITIES リファレンス ページを参照してください。
NumArpOffloadIPv4Addresses
ARP オフロード IPv4 アドレスの数が含まれます。
NumNSOffloadIPv6Addresses
ネットワーク アダプターがサポートするネットワーク要請 (NS) オフロード IPv6 要求の数が含まれます。
MinMagicPacketWakeUp
ネットワーク アダプターがマジック パケットの受信時にウェイクアップ イベントを通知できるデバイスの最低電源状態を指定します。 (マジック パケットは、受信ネットワーク アダプターのイーサネット アドレスの連続した 16 個のコピーを含むパケットです。)
MinPatternWakeUp
プロトコル ドライバーで指定されたパターンを含むネットワーク フレームの受信時に、ネットワーク アダプターがウェイクアップ イベントを通知できるデバイスの最低電源状態を指定します。
MinLinkChangeWakeUp
リンクの変更 (メディア接続または切断) が発生したときに、ネットワーク アダプターがウェイクアップ イベントを通知できるデバイスの最低電源状態を指定します。
SupportedWakeUpEvents
ネットワーク アダプターがサポートするメディアに依存しないウェイクアップ イベントを指定します。 これらのイベントは、メディアの種類に固有ではありません。 たとえば、これらのウェイクアップ イベントにはリンク変更イベントが含まれます。
MediaSpecificWakeUpEvents
ネットワーク アダプターがサポートするメディア固有のウェイクアップ イベントを指定します。 たとえば、これらのイベントには次のものが含まれます。
802.11 ネットワーク アダプターは、アクセス ポイント (AP) との関連付けを解除します。
モバイル ブロードバンド (MB) ネットワーク アダプターは、MB サービスへの登録状態の変化を検出します。
ミニポート ドライバーが低電力状態のネットワーク アダプターに対してプロトコル オフロードをサポートしている場合は、パターン一致の WOL イベントに対してサポートするプロトコル オフロードと同じ低電力状態をサポートする必要があります。つまり、MinPatternWakeUp または MinMagicPacketWakeUp メンバーで指定された値です。
NDIS は、下層ネットワーク アダプターの現在使用可能な電源管理機能を使用して NDIS_PM_CAPABILITIES 構造体を初期化し、バインド操作中に上位プロトコル ドライバーを渡します。 NDIS は、NDIS_PM_CAPABILITIES 構造体を指す NDIS_BIND_PARAMETERS 構造体の PowerManagementCapabilitiesEx メンバーを設定します。
上位ドライバーは、OID_PM_HARDWARE_CAPABILITIES OID クエリを使用して、ネットワーク アダプターのハードウェア電源管理機能を取得できます。 NDIS は、ミニポート ドライバーの代わりにこの OID 要求を処理します。 NDIS ミニポート ドライバーは、OID_PM_HARDWARE_CAPABILITIES OID 要求をサポートする必要はありません。
上位ドライバーは、OID_PM_CURRENT_CAPABILITIES OID を使用して、ネットワーク アダプターの現在使用可能な電源管理機能のクエリを実行できます。 NDIS は、ミニポート ドライバーの代わりにこの OID 要求を処理します。 NDIS ミニポート ドライバーは、OID_PM_CURRENT_CAPABILITIES OID 要求をサポートする必要はありません。