OID_PNP_CAPABILITIES

L’OID OID_PNP_CAPABILITIES demande à un pilote miniport de retourner les fonctionnalités de mise en éveil de sa carte réseau ou demande à un pilote intermédiaire de retourner les fonctionnalités de mise en éveil du pilote intermédiaire. Les fonctionnalités de mise en éveil sont mises en forme comme une structure NDIS_PNP_CAPABILITIES , qui est définie comme suit :

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

Les membres de cette structure contiennent les informations suivantes :

Drapeaux
NDIS_DEVICE_WAKE_UP_ENABLE

NDIS définit cet indicateur si le pilote miniport sous-jacent prend en charge une ou plusieurs fonctionnalités de mise en éveil. Les pilotes de protocole peuvent tester cet indicateur pour déterminer si un pilote miniport sous-jacent a des fonctionnalités de mise en éveil. Les pilotes miniport ne doivent pas accéder à cet indicateur.

WakeUpCapabilities
Structure NDIS_PM_WAKE_UP_CAPABILITIES qui spécifie les fonctionnalités de mise en éveil de la carte réseau du pilote miniport. La structure NDIS_PM_WAKE_UP_CAPABILITIES est définie comme suit :

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;

Les membres de cette structure contiennent les informations suivantes :

MinMagicPacketWakeUp
Spécifie l’état d’alimentation du périphérique le plus bas à partir duquel la carte réseau du pilote miniport peut signaler une mise en éveil à la réception d’un paquet magique. (Un paquet magique est un paquet qui contient 16 copies contiguës de l’adresse Ethernet de la carte réseau de réception.) L’état d’alimentation de l’appareil est spécifié comme l’une des valeurs de NDIS_DEVICE_POWER_STATE suivantes :

NdisDeviceStateUnspecified
La carte réseau ne prend pas en charge les éveils magic-packet.

NdisDeviceStateD0
La carte réseau peut signaler une mise en éveil de paquet magique à partir de l’état d’alimentation de l’appareil D0. Étant donné que D0 est l’état entièrement alimenté, cela ne provoque pas de mise en éveil, mais peut être utilisé comme événement d’exécution.

NdisDeviceStateD1
La carte réseau peut signaler une sortie de veille de paquet magique à partir des états d’alimentation de l’appareil D1 et D0.

NdisDeviceStateD2
La carte réseau peut signaler une sortie de veille de paquet magique à partir des états D2, D1 et D0 de l’appareil.

NdisDeviceStateD3
La carte réseau peut signaler une mise en éveil de paquet magique à partir des états d’alimentation de l’appareil D3, D2, D1 et D0.

MinPatternWakeUp
Spécifie l’état d’alimentation du périphérique le plus bas à partir duquel la carte réseau du pilote miniport peut signaler un événement de mise en éveil à la réception d’une trame réseau qui contient un modèle spécifié par le pilote de protocole. L’état d’alimentation est spécifié comme l’une des valeurs de NDIS_DEVICE_POWER_STATE suivantes :

NdisDeviceStateUnspecified
La carte réseau ne prend pas en charge les sorties de mise en éveil de correspondance de modèle.

NdisDeviceStateD0
La carte réseau peut signaler une mise en éveil de correspondance de modèle à partir de l’état d’alimentation de l’appareil D0. Étant donné que D0 est l’état entièrement alimenté, cela ne provoque pas de mise en éveil, mais peut être utilisé comme événement d’exécution.

NdisDeviceStateD1
La carte réseau peut signaler une mise en éveil de modèle-correspondance à partir des états d’alimentation de l’appareil D1 et D0.

NdisDeviceStateD2
La carte réseau peut signaler une mise en éveil de correspondance de modèle à partir des états d’alimentation de l’appareil D2, D1 et D0.

NdisDeviceStateD3
La carte réseau peut signaler une mise en éveil de correspondance de modèle à partir des états d’alimentation de l’appareil D3, D2, D1 et D0.

MinLinkChangeWakeUp
Réservé. NDIS ignore ce membre.

Pour les pilotes Miniport

Une fois l’initialisation du pilote miniport terminée, le pilote de protocole et NDIS peuvent interroger le pilote miniport avec cet OID pour déterminer les éléments suivants :

  • Indique si le pilote miniport est sensible aux PM.

  • Fonctionnalités de la carte réseau pour indiquer les événements de mise en éveil réseau.

Si le pilote miniport retourne NDIS_STATUS_SUCCESS à une requête de OID_PNP_CAPABILITIES, NDIS considère que le pilote miniport prend en charge le pm. Si le pilote miniport retourne NDIS_STATUS_NOT_SUPPORTED, NDIS considère le pilote miniport comme un pilote de miniport hérité qui ne prend pas en charge le pm.

Lors de l’appel de NdisMSetAttributesEx, un pilote miniport qui ne prend pas en charge les fonctionnalités de mise en éveil, mais qui peut enregistrer et restaurer l’état de sa carte réseau pendant une transition d’état d’alimentation peut définir l’indicateur NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND . La définition de cet indicateur empêche NDIS d’appeler la fonction MiniportHalt du pilote avant que le système passe à un état de faible consommation (veille). Toutefois, si le pilote miniport retourne NDIS_STATUS_NOT_SUPPORTED en réponse à une requête OID_PNP_CAPABILITIES, NDIS ignore l’indicateur NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND et arrête la carte réseau si le système passe à un état de faible consommation.

La carte réseau d’un pilote miniport peut prendre en charge n’importe quelle combinaison d’événements de mise en éveil, y compris aucun événement de mise en éveil. Un pilote miniport peut toujours prendre en charge la gestion de l’alimentation même si sa carte réseau ne peut pas signaler les événements de sortie de veille. Dans ce cas, les seuls OID de gestion de l’alimentation pris en charge par le pilote miniport en plus des OID_PNP_CAPABILITIES sont OID_PNP_QUERY_POWER et OID_PNP_SET_POWER.

Si la carte réseau d’un pilote miniport ne prend pas en charge un événement de mise en éveil spécifique, le pilote miniport doit indiquer une valeur NDIS_DEVICE_POWER_STATEde NdisDeviceStateUnspecified pour l’événement de mise en éveil dans la structure NDIS_PM_WAKE_UP_CAPABILITIES .

OID_PNP_CAPABILITIES indique uniquement les fonctionnalités de mise en éveil de la carte réseau d’un pilote miniport; il n’active pas ces fonctionnalités. OID_PNP_ENABLE_WAKE_UP est utilisé pour activer les fonctionnalités de mise en éveil d’une carte réseau.

Pour les pilotes intermédiaires

Si la carte réseau sous-jacente prend en compte les pm, le pilote intermédiaire doit retourner NDIS_STATUS_SUCCESS à une requête de OID_PNP_CAPABILITIES. Dans la structure NDIS_PM_WAKE_UP_CAPABILITIES retournée par cet OID, le pilote intermédiaire doit spécifier un état d’alimentation du périphérique NdisDeviceStateUnspecified pour chaque fonctionnalité de mise en éveil ( MinMagicPacketWakeUp ou MinPatternWakeUp). Une telle réponse indique que le pilote intermédiaire prend en charge les PM, mais ne gère pas un appareil physique.

Si la carte réseau sous-jacente ne prend pas en compte les pm, le pilote intermédiaire doit retourner NDIS_STATUS_NOT_SUPPORTED à une requête de OID_PNP_CAPABILITIES.

Note Pour plus d’informations sur la façon dont les pilotes miniport NDIS 6.20 et versions ultérieures signalent les fonctionnalités de gestion de l’alimentation, consultez Fonctionnalités de gestion de l’alimentation.

Spécifications

Version

Pris en charge dans NDIS 6.0 et NDIS 6.1. Pour NDIS 6.20 et versions ultérieures, utilisez OID_PM_CURRENT_CAPABILITIES à la place.

En-tête

Ntddndis.h (inclure Ndis.h)

Voir aussi

NDIS_DEVICE_POWER_STATE

NdisMSetAttributesEx

OID_PM_CURRENT_CAPABILITIES

OID_PNP_ENABLE_WAKE_UP

OID_PNP_QUERY_POWER

OID_PNP_SET_POWER

Fonctionnalités de gestion de l’alimentation des rapports