次の方法で共有


OID_PNP_CAPABILITIES

OID_PNP_CAPABILITIES OID は、ミニポート ドライバーにネットワーク アダプターのウェイクアップ機能を返すように要求するか、中間ドライバーに中間ドライバーのウェイクアップ機能を返すように要求します。 ウェイクアップ機能は、次のように定義された NDIS_PNP_CAPABILITIES 構造として書式設定されます。

    typedef struct _NDIS_PNP_CAPABILITIES {
         ULONG Flags;
         NDIS_PM_WAKE_UP_CAPABILITIES WakeUpCapabilities;
    } NDIS_PNP_CAPABILITIES, *PNDIS_PNP_CAPABILITIES;  

この構造体のメンバーには、次の情報が含まれています。

フラグ
NDIS_DEVICE_WAKE_UP_ENABLE

基になるミニポート ドライバーが 1 つ以上のウェイクアップ機能をサポートしている場合、NDIS は、このフラグを設定します。 プロトコル ドライバーは、このフラグをテストして、基になるミニポート ドライバーがウェイクアップ機能を持っているかどうかを特定します。 ミニポート ドライバーは、このフラグにアクセスできません。

WakeUpCapabilities
ミニポート ドライバーのネットワーク アダプターのウェイクアップ機能を指定する NDIS_PM_WAKE_UP_CAPABILITIES 構造体。 NDIS_PM_WAKE_UP_CAPABILITIES 構造体は次のように定義されています。

typedef struct _NDIS_PM_WAKE_UP_CAPABILITIES {
         NDIS_DEVICE_POWER_STATE MinMagicPacketWakeUp;
         NDIS_DEVICE_POWER_STATE MinPatternWakeUp;
         NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp;
       } NDIS_PM_WAKE_UP_CAPABILITIES, *PNDIS_PM_WAKE_UP_CAPABILITIES;

この構造体のメンバーには、次の情報が含まれています。

MinMagicPacketWakeUp
ミニポート ドライバーのネットワーク アダプターがマジック パケットの受信時にウェイクアップ イベントを通知できるデバイスの最低電源状態を指定します。 (マジック パケットは、受信ネットワーク アダプターのイーサネット アドレスの連続した 16 個のコピーを含むパケットです)。デバイスの電源状態は、次の NDIS_DEVICE_POWER_STATE 値のいずれかとして指定されます。

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

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

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

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

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

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

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

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

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

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

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

MinLinkChangeWakeUp
予約済み。 NDIS は、このメンバーを無視します。

ミニポート ドライバーの場合

ミニポート ドライバーの初期化が完了した後、プロトコル ドライバーと NDIS は両方とも、この OID を使用してミニポート ドライバーに対してクエリを実行し、以下を特定します。

  • ミニポート ドライバーが PM 対応かどうか。

  • ネットワーク ウェイクアップ イベントを示すネットワーク アダプターの機能。

ミニポート ドライバーが OID_PNP_CAPABILITIES のクエリに NDIS_STATUS_SUCCESS を返す場合、NDIS はミニポート ドライバーを PM 対応と見なします。 ミニポート ドライバーが NDIS_STATUS_NOT_SUPPORTED を返す場合、NDIS は、ミニポート ドライバーを PM 対応ではないレガシ ミニポート ドライバーと見なします。

NdisMSetAttributesEx を呼び出すときに、ウェイクアップ機能をサポートしていないが、電源状態の遷移でネットワーク アダプターの状態を保存および復元できるミニポート ドライバーは、NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND フラグを設定できます。 このフラグを設定すると、システムが低電力 (スリープ) 状態に移行する前に、NDIS はドライバーの MiniportHalt 関数を呼び出さなくなります。 ただし、ミニポート ドライバーがクエリ OID_PNP_CAPABILITIES に応答して NDIS_STATUS_NOT_SUPPORTED を返す場合は、NDIS は NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND フラグを無視して、システムが低電力状態になった場合、ネットワーク アダプターを停止します。

ミニポート ドライバーのネットワーク アダプターは、ウェイクアップ イベントがない場合も含め、ウェイクアップ イベントの任意の組み合わせをサポートします。 ミニポート ドライバーは、ネットワーク アダプターがウェイクアップ イベントを通知できない場合でも、電源管理をサポートします。 この場合、ミニポート ドライバーが OID_PNP_CAPABILITIES に加えてサポートする唯一の電源管理 OID は、OID_PNP_QUERY_POWEROID_PNP_SET_POWER です。

ミニポート ドライバーのネットワーク アダプターが特定のウェイクアップ イベントをサポートしていない場合、ミニポート ドライバーは、NDIS_PM_WAKE_UP_CAPABILITIES 構造体のウェイクアップ イベントの NdisDeviceStateUnspecifiedNDIS_DEVICE_POWER_STATE 値を示す必要があります。

OID_PNP_CAPABILITIES は、ミニポート ドライバーのネットワーク アダプターのウェイクアップ機能のみを示し、このような機能は有効にされません。 OID_PNP_ENABLE_WAKE_UP は、ネットワーク アダプターのウェイクアップ機能を有効にするために使用されます。

中間ドライバーの場合

基になるネットワーク アダプターが PM 対応の場合は、中間ドライバーは OID_PNP_CAPABILITIES のクエリに NDIS_STATUS_SUCCESS を返す必要があります。 この OID によって返される NDIS_PM_WAKE_UP_CAPABILITIES 構造体では、中間ドライバーは、ウェイクアップ機能 (MinMagicPacketWakeUp or MinPatternWakeUp) ごとに NdisDeviceStateUnspecified のデバイスの電源状態を指定する必要があります。 このような応答は、中間ドライバーが PM 対応であるが、物理デバイスを管理していないことを示します。

基になるネットワーク アダプターが PM 対応でない場合は、中間ドライバーは NDIS_STATUS_NOT_SUPPORTED を OID_PNP_CAPABILITIES のクエリに返す必要があります。

NDIS 6.20 以降のミニポート ドライバーが電源管理機能を報告する方法については、「電源管理機能の報告」を参照してください。

要件

バージョン

NDIS 6.0 と NDIS 6.1 でサポートされています NDIS 6.20 以降の場合は、代わりに OID_PM_CURRENT_CAPABILITIES を使用します。

ヘッダー

Ntddndis.h (Ndis.h を含む)

関連項目

NDIS_DEVICE_POWER_STATE

NdisMSetAttributesEx

OID_PM_CURRENT_CAPABILITIES

OID_PNP_ENABLE_WAKE_UP

OID_PNP_QUERY_POWER

OID_PNP_SET_POWER

電源管理機能のレポート