Prise en charge des Wake-Up système
Lorsque le système est dans un état de faible consommation, certains appareils peuvent détecter un événement externe, tel qu’un paquet réseau entrant, puis réveiller le système. Par exemple, si un appareil PCI dispose d’une fonctionnalité de mise en éveil du système, comme indiqué dans le registre des fonctionnalités de gestion de l’alimentation (PMC) de l’appareil, il déclenche le déclenchement du signal d’événement de gestion de l’alimentation (PME) sur le bus PCI.
Si votre appareil peut sortir le système d’un état de faible consommation à l’échelle du système, la fonction de rappel EvtDriverDeviceAdd dans le propriétaire de la stratégie d’alimentation doit effectuer les deux étapes suivantes :
Appelez WdfDeviceAssignSxWakeSettings pour spécifier :
- État de faible consommation que l’appareil entrera
- Si les utilisateurs peuvent contrôler les paramètres d’inactivité de l’appareil
- Indique si la fonctionnalité de veille de l’appareil est activée ou désactivée
Pour plus d’informations sur ces paramètres, consultez la structure WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS .
Appelez WdfDeviceInitSetPowerPolicyEventCallbacks pour inscrire les fonctions de rappel d’événement suivantes, si vous en avez besoin pour votre appareil :
- EvtDeviceArmWakeFromSx ou EvtDeviceArmWakeFromSxWithReason, qui permettent au matériel de l’appareil de répondre à un événement de mise en éveil externe.
- EvtDeviceDisarmWakeFromSx, qui désactive la capacité de l’appareil à répondre à un événement de mise en éveil externe.
- EvtDeviceWakeFromSxTriggered, qui informe le pilote que le bus a détecté un signal de sortie de veille.
Les conducteurs d’autobus participent également au réveil du système. Le pilote du bus de l’appareil fournit généralement des fonctions de rappel EvtDeviceEnableWakeAtBus et EvtDeviceDisableWakeAtBus . Ces fonctions font tout ce qui est nécessaire sur l’adaptateur de bus pour activer et désactiver la capacité d’un appareil à sortir d’un état de faible consommation.
Lorsqu’un pilote de bus détermine qu’un appareil a déclenché un signal de veille, il doit appeler WdfDeviceIndicateWakeStatus pour informer l’infrastructure que l’alimentation de l’appareil doit être restaurée. L’infrastructure transmet ensuite ces informations au reste des pilotes dans la pile de pilotes.
Pour plus d’informations sur les entrées de Registre qui contrôlent les fonctionnalités de veille d’un appareil, consultez Contrôle utilisateur du comportement d’inactivité et de veille de l’appareil.