NDIS_PM_CAPABILITIES 構造体 (ntddndis.h)
NDIS_PM_CAPABILITIES構造体は、ネットワーク アダプターの電源管理機能を指定します。
構文
typedef struct _NDIS_PM_CAPABILITIES {
NDIS_OBJECT_HEADER Header;
ULONG Flags;
ULONG SupportedWoLPacketPatterns;
ULONG NumTotalWoLPatterns;
ULONG MaxWoLPatternSize;
ULONG MaxWoLPatternOffset;
ULONG MaxWoLPacketSaveBuffer;
ULONG SupportedProtocolOffloads;
ULONG NumArpOffloadIPv4Addresses;
ULONG NumNSOffloadIPv6Addresses;
NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
ULONG SupportedWakeUpEvents;
ULONG MediaSpecificWakeUpEvents;
} NDIS_PM_CAPABILITIES, *PNDIS_PM_CAPABILITIES;
メンバー
Header
NDIS_PM_CAPABILITIES構造体の型、リビジョン、およびサイズ。 このメンバーは、 NDIS_OBJECT_HEADER 構造体として書式設定されます。
ミニポート ドライバーは、ヘッダーの Type メンバーをNDIS_OBJECT_TYPE_DEFAULTに設定する必要があります。 NDIS_PM_CAPABILITIES構造体のバージョンを指定するには、ドライバーは Header の Revision メンバーを次の値に設定する必要があります。
NDIS_PM_CAPABILITIES_REVISION_2
NDIS 6.30 のさまざまな変更を追加しました。
[サイズ] メンバーをNDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_2に設定します。
NDIS_PM_CAPABILITIES_REVISION_1
NDIS 6.20 の元のバージョン。
[サイズ] メンバーを [NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1] に設定します。
Flags
フラグのビットごとの OR を含む ULONG 値。 NDIS 6.20 の場合、このメンバーは NDIS 用に予約されています。
NDIS 6.30 以降では、次のフラグが定義されています。
NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED
このフラグが設定されている場合、ネットワーク アダプターは、アダプターがウェイクアップ イベントを生成する原因となった受信パケットを保存できる必要があります。
このフラグが設定されている場合、ミニポート ドライバーは、ネットワーク アダプターが完全な電源状態に遷移した後、このパケットで次の操作を行うことができる必要があります。
- ミニポート ドライバーは、 NdisMIndicateReceiveNetBufferLists を呼び出すことによってパケットを示すことができる必要があります。
- ミニポート ドライバーは、 NDIS_STATUS_PM_WAKE_REASON 状態の表示を発行できる必要がありますし、表示を使用してパケットを渡す必要があります。
NDIS_PM_SELECTIVE_SUSPEND_SUPPORTED
このフラグが設定されている場合、ミニポート ドライバーは、ネットワーク アダプターの NDIS 選択的な中断をサポートします。
この電源管理機能の詳細については、「 NDIS 選択的中断」を参照してください。
SupportedWoLPacketPatterns
ネットワーク アダプターがサポートする wake-on-LAN (WOL) パターンを指定するフラグのビットごとの OR を含む ULONG 値。 ミニポート ドライバーは、これらのフラグを使用して、ネットワーク アダプターがサポートするパケット ベースの WOL パターンをアドバタイズします。
このメンバーの詳細については、「解説」セクションを参照してください。 WOL パターンの詳細については、「 NDIS_PM_WOL_PATTERN」を参照してください。
NDIS_PM_WOL_BITMAP_PATTERN_SUPPORTED
ネットワーク アダプターは、構成されたビットマップ パターンに一致するパケットを受信すると、ウェイクアップ イベントを生成できます。
NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED
ネットワーク アダプターは、WOL マジック パケットを受信したときにウェイクアップ イベントを生成できます。 マジック パケットはペイロード内に、値が 0xFF の 6 バイトの文字列を含み、その直後に受信ネットワーク アダプターのイーサネット アドレスの 16 個の連続したコピーが含まれます。
NDIS_PM_WOL_IPV4_TCP_SYN_SUPPORTED
ネットワーク アダプターは、IPv4 TCP SYN パケットを受信したときにウェイクアップ イベントを生成できます。 リモート ホストは TCP SYN パケットを送信して、ローカル コンピューターへの TCP 接続を開始します。
NDIS_PM_WOL_IPV6_TCP_SYN_SUPPORTED
ネットワーク アダプターは、IPv6 TCP SYN パケットを受信したときにウェイクアップ イベントを生成できます。
NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED
このフラグが設定されている場合、ネットワーク アダプターは、WOL パターンの IPv4 アドレスと TCP/UDP ポートに対して、0 個の値 (未指定) のワイルドカード値としてサポートされます。 このようにして、ワイルドカード値は、WOL パターンで指定された場所の受信パケットの IPv4 アドレスと任意のポート値と一致します。
IPv4 TCP SYN パターンなどの IPv4 ベースのウェイク オン LAN パケット パターンがネットワーク アダプターでサポートされている場合、受信パケットの IPv4 アドレスとポート値がウェイクアップ パターンで指定されたものと一致する場合は、ウェイクアップ イベントの生成をサポートする必要があります。
ただし、NDIS_PM_WOL_IPV4_DEST_ADDR_WILDCARD_SUPPORTED フラグが設定されている場合、ネットワーク アダプターは、次のパターン 一致条件が true の場合にウェイクアップ イベントを生成することもできます。
- WOL パターンで指定された場所の受信パケットからの値は、その場所の WOL パターンにワイルドカード値が含まれている場合、一致します。
- WOL パターンで指定された場所の受信パケットからの値は、その場所の WOL パターンにパケットの値と等しい 0 以外の値が含まれている場合に一致します。
NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED
このフラグが設定されている場合、ネットワーク アダプターは、WOL パターンの IPv6 アドレスと TCP/UDP ポートに対して、0 個の値 (指定なし) のワイルドカード値としてをサポートします。 このようにして、ワイルドカード値は、WOL パターンで指定された場所の受信パケットの IPv6 アドレスと任意のポート値と一致します。
ネットワーク アダプターが IPv6 TCP SYN パターンなどの IPv6 ベースのウェイク オン LAN パケット パターンをサポートする場合、受信パケットの IPv6 アドレスとポート値がウェイクアップ パターンで指定されたものと一致する場合は、ウェイクアップ イベントの生成をサポートする必要があります。
ただし、NDIS_PM_WOL_IPV6_DEST_ADDR_WILDCARD_SUPPORTED フラグが設定されている場合、ネットワーク アダプターは、次のパターン マッチング条件に該当する場合にウェイクアップ イベントを生成することもできます。
- WOL パターンで指定された場所の受信パケットからの値は、その場所の WOL パターンにワイルドカード値が含まれている場合、一致します。
- WOL パターンで指定された場所の受信パケットからの値は、その場所の WOL パターンにパケットの値と等しい 0 以外の値が含まれている場合に一致します。
NDIS_PM_WOL_EAPOL_REQUEST_ID_MESSAGE_SUPPORTED
ネットワーク アダプターは、EAPOL 要求識別子メッセージを受信したときにウェイクアップ イベントを生成できます。
NumTotalWoLPatterns
ネットワーク アダプターがサポートする WOL パターンの合計数を含む ULONG 値。 これは、"サポートされている WOL プロトコル パターンの数" と "サポートされている WOL ビットマップ パターンの数" の合計です。
たとえば、ドライバーが 8 つの柔軟なビットマップ パターン、IPv4 TCP SYN (プリセット フィルター経由)、マジック パケットをサポートしている場合は、NumTotalWoLPatterns で 9 を報告します。 (8 ビットマップ + 1 IPv4 TCP SYN = 9)
MaxWoLPatternSize
パターンと比較できる最大バイト数を含む ULONG 値。
MaxWoLPatternOffset
MAC ヘッダーの先頭から、検査できるパケットのバイト数を含む ULONG 値。
MaxWoLPacketSaveBuffer
ミニポート ドライバーがバッファーに保存し、ドライバー スタックを示すことができる WOL パケットのバイト数を含む ULONG 値。 この値は、ネットワーク メディアの最大伝送単位 (MTU) のサイズ (バイト単位) 以下である必要があります。 ドライバーは、 OID_GEN_MAXIMUM_FRAME_SIZEの OID クエリ要求を通じて MTU サイズを報告します。
SupportedProtocolOffloads
ネットワーク アダプターがサポートするプロトコル オフロード機能を指定するフラグのビットごとの OR を含む ULONG 値。 ミニポート ドライバーは、これらのフラグを使用して、ネットワーク アダプターの低電力プロトコル オフロード機能を報告します。
NDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED
このビットが設定されている場合、ネットワーク アダプターは、低電力状態の間に IPv4 ARP パケットに応答できます
ARP プロトコルの詳細については、「RFC 826」を参照してください。
NDIS_PM_PROTOCOL_OFFLOAD_NS_SUPPORTED
このビットが設定されている場合、ネットワーク アダプターは、低電力状態にある間に IPv6 近隣要請 (NS) パケットに応答できます。
IPv6 NS メッセージの詳細については、「 RFC 4861」を参照してください。
NDIS_PM_PROTOCOL_OFFLOAD_80211_RSN_REKEY_SUPPORTED
ネットワーク アダプターは、低電力状態にある間、IEEE 802.11i 堅牢セキュリティ ネットワーク (RSN) の再キー要求に応答できます。
NumArpOffloadIPv4Addresses
アダプターが ARP オフロードにサポートする IPv4 アドレスの数を含む ULONG 値。
NumNSOffloadIPv6Addresses
アダプターがサポートする IPv6 NS オフロード要求の数を含む ULONG 値。 これは少なくとも 2 である必要があります。
MinMagicPacketWakeUp
ネットワーク アダプターがマジック パケットの受信時にウェイクアップ イベントを通知できる最も低いデバイスの電源状態を指定します。 マジック パケットには、ペイロード内に、値が 0xFF の 6 バイトの文字列が含まれます。その直後に、受信ネットワーク アダプターの MAC アドレスの 16 個の連続したコピーが続きます。
NdisDeviceStateUnspecified
ネットワーク アダプターは、マジック パケットウェイクアップをサポートしていません。
NdisDeviceStateD0
ネットワーク アダプターは、デバイスの電源状態 D0 からマジック パケットウェイクアップを通知できます。 D0 はフルパワー状態であるため、ウェイクアップは発生しませんが、実行時イベントとして使用できます。
NdisDeviceStateD1
ネットワーク アダプターは、デバイスの電源状態 D1 からマジック パケットウェイクアップを通知できます。
NdisDeviceStateD2
ネットワーク アダプターは、D2 のデバイス状態からマジック パケットウェイクアップを通知できます。
NdisDeviceStateD3
ネットワーク アダプターは、デバイスの電源状態 D3 からマジック パケットウェイクアップを通知できます。
MinPatternWakeUp
プロトコル ドライバーによって指定されたパターンを含むネットワーク フレームの受信時に、ネットワーク アダプターがウェイクアップ イベントを通知できる最も低いデバイス電源状態を指定します。 電源状態は、次の NDIS_DEVICE_POWER_STATE 値のいずれかとして指定されます。
NdisDeviceStateUnspecified
ネットワーク アダプターは、パターン一致ウェイクアップをサポートしていません。
NdisDeviceStateD0
ネットワーク アダプターは、デバイスの電源状態 D0 からパターン一致のウェイクアップを通知できます。 D0 はフルパワー状態であるため、ウェイクアップは発生しませんが、実行時イベントとして使用できます。
NdisDeviceStateD1
ネットワーク アダプターは、D1 のデバイスの電源状態からパターン一致のウェイクアップを通知できます。
NdisDeviceStateD2
ネットワーク アダプターは、D2 のデバイスの電源状態からパターン一致のウェイクアップを通知できます。
NdisDeviceStateD3
ネットワーク アダプターは、D3 のデバイスの電源状態からパターンマッチウェイクアップを通知できます。
MinLinkChangeWakeUp
NDIS 6.20 以降では、このメンバーは、リンク状態がメディアから接続されているメディアに切り替わるときに、ネットワーク アダプターがウェイクアップ イベントを通知できる最も低いデバイス電源状態を指定します。
NDIS 6.30 以降では、このメンバーは、ネットワーク アダプターがウェイクアップ イベントを通知できる最も低いデバイスの電源状態を指定します。 これらのイベントは 、SupportedWakeUpEvents メンバーで指定されます。
電源状態は、次の NDIS_DEVICE_POWER_STATE 値のいずれかとして指定されます。
NdisDeviceStateUnspecified
ネットワーク アダプターは、リンク変更ウェイクアップをサポートしていません。
NdisDeviceStateD0
ネットワーク アダプターは、デバイスの電源状態 D0 からリンク変更のウェイクアップを通知できます。 D0 はフルパワー状態であるため、ウェイクアップは発生しませんが、実行時イベントとして使用できます。
NdisDeviceStateD1
ネットワーク アダプターは、デバイスの電源状態 D1 からリンク変更のウェイクアップを通知できます。
NdisDeviceStateD2
ネットワーク アダプターは、デバイスの電源状態 D2 からリンク変更のウェイクアップを通知できます。
NdisDeviceStateD3
ネットワーク アダプターは、デバイスの電源状態 D3 からリンク変更ウェイクアップを通知できます。
SupportedWakeUpEvents
フラグのビットごとの OR を含む ULONG 値。 これらのフラグは、ネットワーク アダプターがサポートするメディアに依存しないウェイクアップ イベントを指定します。 これらのイベントは、メディアの種類に固有ではありません。
NDIS 6.30 以降では、次のフラグが定義されています。
NDIS_PM_WAKE_ON_MEDIA_CONNECT_SUPPORTED
このフラグが設定されている場合、ネットワーク アダプターは、ネットワーク インターフェイスに接続されたときにウェイクアップ イベントを生成できます。
NDIS_PM_WAKE_ON_MEDIA_DISCONNECT_SUPPORTED
このフラグが設定されている場合、ネットワーク アダプターは、ネットワーク インターフェイスに切断されたときにウェイクアップ イベントを生成できます。
MediaSpecificWakeUpEvents
フラグのビットごとの OR を含む ULONG 値。 これらのフラグは、ネットワーク アダプターがサポートするメディア固有のウェイクアップ イベントを指定します。
NDIS 6.30 以降では、次のフラグが定義されています。
NDIS_WLAN_WAKE_ON_NLO_DISCOVERY_SUPPORTED
このフラグが設定されている場合、802.11 ネットワーク アダプターは、ネットワーク リスト オフロード (NLO) で指定されたサービス セット識別子 (SSID) を検出した場合にウェイクアップ イベントを生成できます。
NLO の詳細については、「Wi-Fi ネットワーク リスト オフロード」を参照してください。
NDIS_WLAN_WAKE_ON_AP_ASSOCIATION_LOST_SUPPORTED
このフラグが設定されている場合、802.11 ネットワーク アダプターは、アクセス ポイント (AP) との関連付けを解除した場合にウェイクアップ イベントを生成できます。
NDIS_WLAN_WAKE_ON_GTK_HANDSHAKE_ERROR_SUPPORTED
このフラグが設定されている場合、802.11 ネットワーク アダプターは、AP との IEEE 802.11i RSN グループ一時キー (GTK) ハンドシェイク中にエラーが発生した場合にウェイクアップ イベントを生成できます。
NDIS_WLAN_WAKE_ON_4WAY_HANDSHAKE_REQUEST_SUPPORTED
このフラグが設定されている場合、802.11 ネットワーク アダプターは、AP との IEEE 802.11i RSN 4 方向ハンドシェイクの最初のフレームを受信した場合にウェイクアップ イベントを生成できます。 このハンドシェイクは、アダプターが AP で認証されるときに実行されます。
NDIS_WWAN_WAKE_ON_REGISTER_STATE_SUPPORTED
このフラグが設定されている場合、モバイル ブロードバンド (MB) ネットワーク アダプターは、MB サービスへの登録状態が変更された場合にウェイクアップ イベントを生成できます。
NDIS_WWAN_WAKE_ON_SMS_RECEIVE_SUPPORTED
このフラグが設定されている場合、MB ネットワーク アダプターは、ショート メッセージ サービス (SMS) メッセージの受信について MB サービスに通知する必要がある場合、ウェイクアップ イベントを生成できます。 アダプターは、以前に発行された OID_WWAN_SMS_READ クエリ要求の完了後、またはイベント通知としてネットワーク プロバイダーから新しいクラス 0 (フラッシュ/アラート) メッセージが到着した後に、このウェイクアップ イベントを生成します。
NDIS_WWAN_WAKE_ON_USSD_RECEIVE_SUPPORTED
このフラグが設定されている場合、MB ネットワーク アダプターは、非構造化補助サービス データ (USSD) メッセージを受信した場合にウェイクアップ イベントを生成できます。
注釈
NDIS_PM_CAPABILITIES構造体は、 の PowerManagementCapabilitiesEx メンバーで使用されます。 NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES および NDIS_BIND_PARAMETERS 構造と NDIS_STATUS_PM_CAPABILITIES_CHANGE 状態を示します。
ミニポートの初期化中に、ミニポート ドライバーは、ネットワーク アダプター ハードウェアの電源管理機能を使用して 、NDIS_PM_CAPABILITIES 構造体を初期化します。 ミニポート ドライバーは、初期化されたNDIS_PM_CAPABILITIES構造体を指すNDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES構造体の PowerManagementCapabilitiesEx メンバー を 設定します。
基になるドライバーは、ネットワーク アダプターがサポートしていない機能を有効にしないでください。 上にあるドライバーがネットワーク アダプターが提供する機能を判断できるようにするために、NDIS は、NDIS_BIND_PARAMETERS構造体の PowerManagementCapabilitiesEx メンバーの機能を提供します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.20 以降でサポートされています。 |
Header | ntddndis.h (Ntddndis.h を含む) |