次の方法で共有


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構造体のバージョンを指定するには、ドライバーは HeaderRevision メンバーを次の値に設定する必要があります。

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 Wake Reason Status Indications」を参照してください。

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 以外の値が含まれている場合に一致します。
ミニポート ドライバーは、上にあるドライバーがこの機能を有効にしない限り、指定された IPv4 アドレスとポートにウェイクアップ イベントを制限する必要があります。
メモ このフラグで有効になっているワイルドカード値には、未指定の IPv4 送信元アドレスと宛先アドレス、および指定されていない送信元ポートと宛先ポートを含めることができます。
 

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 以外の値が含まれている場合に一致します。
ミニポート ドライバーは、上にあるドライバーがこの機能を有効にしない限り、指定された IPv6 アドレスとポートにウェイクアップ イベントを制限する必要があります。
メモ このフラグで有効になっているワイルドカード値には、未指定の IPv6 送信元アドレスと宛先アドレス、および指定されていない送信元ポートと宛先ポートを含めることができます。
 

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)

メモ WOL パターンの合計数には、マジック パケットウェイクアップ パターンは含まれません。
 
WOL プロトコル パターンの詳細については、「 NDIS_PM_WOL_PATTERN」を参照してください。

MaxWoLPatternSize

パターンと比較できる最大バイト数を含む ULONG 値。

MaxWoLPatternOffset

MAC ヘッダーの先頭から、検査できるパケットのバイト数を含む ULONG 値。

MaxWoLPacketSaveBuffer

ミニポート ドライバーがバッファーに保存し、ドライバー スタックを示すことができる WOL パケットのバイト数を含む ULONG 値。 この値は、ネットワーク メディアの最大伝送単位 (MTU) のサイズ (バイト単位) 以下である必要があります。 ドライバーは、 OID_GEN_MAXIMUM_FRAME_SIZEの OID クエリ要求を通じて MTU サイズを報告します。

メモ NDIS 6.20 以前のバージョンの NDIS では、このメンバーは無視されます。 NDIS 6.30 以降では、NDIS_PM_WAKE_PACKET_INDICATION_SUPPORTED フラグが Flags メンバーに設定されている場合、このメンバーには 0 以外の値を含める必要があります。
 

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 である必要があります。

メモ その名前にもかかわらず、 NumNSOffloadIPv6Addresses には、アドレスではなく、サポートされている要求の数が含まれています。
 

MinMagicPacketWakeUp

ネットワーク アダプターがマジック パケットの受信時にウェイクアップ イベントを通知できる最も低いデバイスの電源状態を指定します。 マジック パケットには、ペイロード内に、値が 0xFF の 6 バイトの文字列が含まれます。その直後に、受信ネットワーク アダプターの MAC アドレスの 16 個の連続したコピーが続きます。

メモ デバイスの電源状態は、D0 が最も高いデバイスの電源状態で、D3 が最も低いデバイスの電源状態である場合、値 Dx で指定されます。
 
デバイスの電源状態は、次の NDIS_DEVICE_POWER_STATE 値のいずれかとして指定されます。

NdisDeviceStateUnspecified

ネットワーク アダプターは、マジック パケットウェイクアップをサポートしていません。

メモMinMagicPacketWakeUp メンバーがこの値に設定されている場合、NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED フラグを SupportedWoLPacketPatterns メンバーに設定しないでください。
 

NdisDeviceStateD0

ネットワーク アダプターは、デバイスの電源状態 D0 からマジック パケットウェイクアップを通知できます。 D0 はフルパワー状態であるため、ウェイクアップは発生しませんが、実行時イベントとして使用できます。

メモ NDIS 6.20 以降では、NdisDeviceStateD0 からのマジック パケット ウェイクアップの通知はサポートされなくなりました。
 

NdisDeviceStateD1

ネットワーク アダプターは、デバイスの電源状態 D1 からマジック パケットウェイクアップを通知できます。

NdisDeviceStateD2

ネットワーク アダプターは、D2 のデバイス状態からマジック パケットウェイクアップを通知できます。

NdisDeviceStateD3

ネットワーク アダプターは、デバイスの電源状態 D3 からマジック パケットウェイクアップを通知できます。

MinPatternWakeUp

プロトコル ドライバーによって指定されたパターンを含むネットワーク フレームの受信時に、ネットワーク アダプターがウェイクアップ イベントを通知できる最も低いデバイス電源状態を指定します。 電源状態は、次の NDIS_DEVICE_POWER_STATE 値のいずれかとして指定されます。

NdisDeviceStateUnspecified

ネットワーク アダプターは、パターン一致ウェイクアップをサポートしていません。

メモMinPatternWakeUp メンバーがこの値に設定されている場合は、SupportedWoLPacketPatterns メンバーでNDIS_PM_WOL_MAGIC_PACKET_SUPPORTED フラグのみを設定できます。
 

NdisDeviceStateD0

ネットワーク アダプターは、デバイスの電源状態 D0 からパターン一致のウェイクアップを通知できます。 D0 はフルパワー状態であるため、ウェイクアップは発生しませんが、実行時イベントとして使用できます。

メモ NDIS 6.20 以降では、NdisDeviceStateD0 からのパターン一致ウェイクアップの通知はサポートされなくなりました。
 

NdisDeviceStateD1

ネットワーク アダプターは、D1 のデバイスの電源状態からパターン一致のウェイクアップを通知できます。

NdisDeviceStateD2

ネットワーク アダプターは、D2 のデバイスの電源状態からパターン一致のウェイクアップを通知できます。

NdisDeviceStateD3

ネットワーク アダプターは、D3 のデバイスの電源状態からパターンマッチウェイクアップを通知できます。

MinLinkChangeWakeUp

NDIS 6.20 以降では、このメンバーは、リンク状態がメディアから接続されているメディアに切り替わるときに、ネットワーク アダプターがウェイクアップ イベントを通知できる最も低いデバイス電源状態を指定します。

NDIS 6.30 以降では、このメンバーは、ネットワーク アダプターがウェイクアップ イベントを通知できる最も低いデバイスの電源状態を指定します。 これらのイベントは 、SupportedWakeUpEvents メンバーで指定されます。

電源状態は、次の NDIS_DEVICE_POWER_STATE 値のいずれかとして指定されます。

NdisDeviceStateUnspecified

ネットワーク アダプターは、リンク変更ウェイクアップをサポートしていません。

メモMinLinkChangeWakeUp メンバーがこの値に設定されている場合は、SupportedWakeUpEvents メンバーを 0 に設定する必要があります。
 

NdisDeviceStateD0

ネットワーク アダプターは、デバイスの電源状態 D0 からリンク変更のウェイクアップを通知できます。 D0 はフルパワー状態であるため、ウェイクアップは発生しませんが、実行時イベントとして使用できます。

メモ NDIS 6.20 以降では、NdisDeviceStateD0 からのリンク変更ウェイクアップの通知はサポートされなくなりました。
 

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 ドライバーでは、 PowerManagementCapabilities メンバーの代わりに PowerManagementCapabilitiesEx メンバーを使用 する 必要があります。
 
SupportedProtocolOffloads メンバーには、ネットワーク アダプターがサポートするプロトコル オフロード機能を指定するフラグが含まれています。 ネットワーク アダプターは、これらのプロトコルを低電力状態で処理します。 たとえば、ネットワーク アダプター ハードウェアが低電力状態にあるときにドライバー スタックの IPv4 ARP パケットを処理できる場合、ミニポート ドライバーは SupportedProtocolOffloads でNDIS_PM_PROTOCOL_OFFLOAD_ARP_SUPPORTED ビットを設定します。

要件

要件
サポートされている最小のクライアント NDIS 6.20 以降でサポートされています。
Header ntddndis.h (Ntddndis.h を含む)

こちらもご覧ください

NDIS_BIND_PARAMETERS

NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_PM_WOL_PATTERN

NDIS_STATUS_PM_CAPABILITIES_CHANGE

NDIS_STATUS_PM_WAKE_REASON

NdisMIndicateReceiveNetBufferLists

NdisMIndicateStatusEx