Low Power on Media Disconnect
La fonctionnalité de déconnexion multimédia à faible consommation d’alimentation (D3 lors de la déconnexion) permet d’économiser l’alimentation en plaçant une carte réseau dans un état d’alimentation faible (D3) lorsque le média est déconnecté. Lorsque le média est reconnecté, la carte réseau est rétablie à l’état d’alimentation totale (D0).
NDIS utilise la fonctionnalité D3 on disconnect dans les conditions suivantes :
Le matériel de la carte réseau doit être en mesure de générer un événement de veille sur la connexion multimédia.
Le pilote miniport doit signaler la capacité d’événement de veille de la carte réseau dans le membre MinLinkChangeWakeUp de la structure NDIS_PM_CAPABILITIES .
La valeur de MinLinkChangeWakeUp doit correspondre à la valeur du membre DeviceWake de la structure DEVICE_CAPABILITIES qui est signalée par le IRP_MN_QUERY_CAPABILITIES IRP.
Le pilote miniport doit s’inscrire en tant que pilote NDIS 6.20 ou version ultérieure.
La carte réseau doit être une carte PCI Ethernet.
La fonctionnalité d’événement de veille doit être activée par le fichier INF standard *DeviceSleepOnDisconnect mot clé.
Le chipset de l’ordinateur doit être en mesure de propager correctement l’événement de veille lorsque l’ordinateur est entièrement alimenté. NDIS valide cela en interrogeant la propriété PCI DEVPKEY_PciDevice_S0WakeupSupported.
Notez que D3 lors de la déconnexion n’est disponible que lorsque l’ordinateur est entièrement alimenté à l’état de fonctionnement (S0). Cette fonctionnalité est annulée lorsque l’ordinateur entre dans un état de veille pour empêcher le réveil de l’ordinateur lorsque l’état de liaison est cycleé en externe ; autrement dit, lorsqu’un commutateur est désactivé et activé. Pour plus d’informations sur la définition de l’état de faible consommation d’énergie lorsqu’un ordinateur entre dans un état de veille, consultez Faible consommation d’alimentation pour l’éveil sur réseau local.
Un pilote miniport signale D3 sur les fonctionnalités de déconnexion pendant l’initialisation. Pour plus d’informations sur la création de rapports D3 sur les fonctionnalités de déconnexion, consultez Fonctionnalités de gestion de l’alimentation de création de rapports.
Le fichier INF standard *DeviceSleepOnDisconnect mot clé spécifie si l’appareil a activé ou désactivé la prise en charge de D3 lors de la déconnexion. Pour plus d’informations sur cette mot clé INF, consultez Mots clés INF standardisés pour la gestion de l’alimentation.
Pendant l’initialisation, un pilote miniport qui prend en charge D3 lors de la déconnexion doit signaler le niveau d’alimentation le plus bas où il peut prendre en charge la possibilité de notifier le système d’exploitation d’un événement media connect. Le pilote miniport indique le niveau d’alimentation dans le membre MinLinkChangeWakeUp de la structure NDIS_PM_CAPABILITIES . Par exemple, le pilote miniport peut signaler NdisDeviceStateD3.
La figure suivante illustre la séquence d’événements permettant de définir une carte réseau à un état de faible consommation après un événement de déconnexion de média.
Lorsque l’adaptateur détecte une déconnexion multimédia, la séquence suivante se produit :
Le matériel de la carte réseau détecte un événement de déconnexion multimédia et transmet les informations au pilote miniport.
Le pilote miniport avertit NDIS d’un événement de déconnexion multimédia à l’aide de l’indication status NDIS_STATUS_LINK_STATE. Le membre StatusBuffer de la structure NDIS_STATUS_INDICATION contient une structure NDIS_LINK_STATE . La valeur MediaConnectStateDisconnected est définie dans le membre MediaConnectState de la structure NDIS_LINK_STATE .
NDIS utilise OID_PM_PARAMETERS pour désactiver Wake-on-LAN et activer la veille sur la connexion multimédia (NDIS_PM_WAKE_ON_LINK_CHANGE_ENABLED est défini dans le membre WakeUpFlags ).
NDIS utilise l’OID OID_PNP_SET_POWER pour informer le pilote miniport du nouvel état d’alimentation (D3).
NDIS envoie au bus PCIe une IRP_MN_WAIT_WAKE IRP pour attendre un événement de reconnexion.
NDIS définit le bus PCIe à l’état D3 avec le IRP_MN_SET_POWER IRP.
La figure suivante illustre la séquence d’événements permettant de restaurer l’alimentation totale d’une carte réseau après un événement de connexion multimédia.
Lorsque le média est reconnecté, la séquence suivante se produit :
La carte réseau réveille le système en affirmant WAKE# sur le bus PCIe ou PME# sur le bus PCI.
Le bus termine le IRP_MN_WAIT_WAKE IRP en attente. L’IRP est en attente d’achèvement à partir de la dernière étape de la séquence de déconnexion.
NDIS définit le bus à pleine puissance (D0) avec l’IRP IRP_MN_SET_POWER .
NDIS avertit le pilote miniport que la carte réseau est à l’état d’alimentation totale (D0) avec la demande de jeu OID de OID_PNP_SET_POWER.
La carte réseau avertit NDIS d’un événement media connect avec l’indication status NDIS_STATUS_LINK_STATE. La valeur MediaConnectStateConnected est définie dans le membre MediaConnectState de la structure NDIS_LINK_STATE .
À compter de NDIS 6.30, si le pilote miniport prend en charge NDIS_STATUS_PM_WAKE_REASON status indications, il doit émettre cette notification status si la carte réseau réveille le système. Le pilote émet cette notification status alors qu’il gère la demande de jeu OID de OID_PNP_SET_POWER pour la transition vers un état d’alimentation totale (D0).
Pour plus d’informations, consultez Indications d’état du motif de veille NDIS.
Note Si le pilote miniport émet une indication NDIS_STATUS_PM_WAKE_REASON status, il doit le faire avant d’émet l’indication NDIS_STATUS_LINK_STATE status.