Déterminer si un appareil peut réveiller le système
Certains appareils, tels que les claviers, les modems et les cartes réseau, peuvent répondre aux signaux externes lorsqu’ils sont en état de veille de l’appareil. Dans le cadre de sa technologie de gestion de l’alimentation, le système d’exploitation permet à ces appareils de réveiller un système en veille, qui peut ensuite restaurer son contexte précédent. Le mécanisme de mise en éveil logicielle permet à un système de sortir de n’importe quel état, à l’exception de S5 (PowerSystemShutdown), en fonction de la prise en charge du système et du matériel de l’appareil et du BIOS. Un système dans l’état S5 doit toujours être redémarré.
Bien que le système d’exploitation soit conçu pour sortir de n’importe quel état de veille intermédiaire, les fonctionnalités de mise en éveil exactes varient d’un ordinateur à l’autre et d’un appareil à l’autre. Tous les ordinateurs ne prennent pas en charge tous les états de veille du système ; par conséquent, la possibilité de sortir de certains états n’a aucun sens sur certains ordinateurs.
De même, la plupart des appareils ne prennent pas en charge tous les états d’alimentation des appareils (D0 à D3) et ne prennent pas en charge la mise en éveil de tous les états d’alimentation de l’appareil qu’ils prennent en charge.
Les états de veille qu’un appareil peut entrer, ainsi que les états à partir desquels il prend en charge la mise en éveil, sont décrits lors de l’énumération par le pilote de bus et sont stockés dans la structure DEVICE_CAPABILITIES . Le tableau suivant répertorie les membres de cette structure qui sont pertinents pour la prise en charge de l’attente/veille.
Membre | Description |
---|---|
True si l’appareil prend en charge l’état PowerDeviceD1. |
|
True si l’appareil prend en charge l’état PowerDeviceD2. |
|
True si l’appareil peut sortir de PowerDeviceD0. |
|
True si l’appareil peut sortir de PowerDeviceD1. |
|
True si l’appareil peut sortir de PowerDeviceD2. |
|
True si l’appareil peut sortir de PowerDeviceD3. |
|
DeviceState [PowerSystemMaximum] |
Spécifie l’état d’alimentation le plus élevé que cet appareil peut prendre en charge pour chaque état d’alimentation du système, de PowerSystemUnspecified à PowerSystemShutdown. |
Spécifie l’état d’alimentation du système le plus bas (S0 à S4) à partir duquel le système peut être réveillé. |
|
Spécifie l’état d’alimentation le plus bas de l’appareil (D0 à D3) à partir duquel l’appareil peut se réveiller. |
L’entrée DeviceWake répertorie l’état d’alimentation le plus faible de l’appareil à partir duquel l’appareil peut répondre à un signal de mise en éveil. La valeur PowerDeviceUnspecified indique que l’appareil ne peut pas sortir le système. L’entrée SystemWake répertorie l’état d’alimentation du système le plus bas à partir duquel le système peut être réveillé. Ces valeurs sont basées sur les fonctionnalités du devnode parent et les pilotes ne doivent pas les modifier. Pour plus d’informations, consultez Fonctionnalités d’alimentation des appareils de création de rapports.
En général, un appareil peut réveiller le système si les éléments suivants sont vrais :
L’appareil est dans un état d’alimentation égal ou supérieur à la valeur DeviceWake .
Le système est dans un état d’alimentation égal ou supérieur à la valeur SystemWake .