Partager via


SystemWake

Le membre SystemWake de DEVICE_CAPABILITIES contient l’état d’alimentation du système le plus bas (le moins alimenté) à partir duquel l’appareil peut sortir le système, ou PowerSystemUnspecified si l’appareil ne peut pas sortir le système.

Le pilote de bus définit cette valeur sur lorsqu’il énumère l’appareil. Un pilote de niveau supérieur peut modifier la valeur à un état plus puissant, mais ne peut pas la remplacer par un état moins alimenté. Par exemple, si le pilote de bus définit SystemWake sur S3, mais qu’un pilote plus haut dans la pile de périphériques ne prend en charge la mise en éveil qu’à partir de S2, le pilote de niveau supérieur peut remplacer la valeur par S2. Si un pilote change SystemWake, il peut également devoir modifier DeviceWake, comme expliqué dans la section suivante.

Les pilotes ont rarement besoin de propager les valeurs modifiées vers le bas de la pile de périphériques. Étant donné que les modifications rendent les fonctionnalités de l’appareil plus restrictives, les pilotes inférieurs ne voient pas les demandes qu’ils ne peuvent pas gérer. Dans l’exemple précédent, un pilote de niveau supérieur échoue à toute demande de sortie de veille du système d’un état de puissance inférieure à celui de S2, de sorte que les pilotes inférieurs ne voient jamais une telle demande. Toutefois, si un pilote inférieur doit être conscient des modifications, il peut envoyer un IRP_MN_QUERY_CAPABILITIES PnP à sa propre pile de périphériques pendant son traitement d’un IRP_MN_START_DEVICE.

Si les membres SystemWake et DeviceWake sont tous deux différents de zéro (autrement dit, pas PowerSystemUnspecified), l’appareil et ses pilotes prennent en charge la mise en éveil sur ce système.

Sur le matériel non ACPI, ce membre contient toujours zéro (PowerSystemUnspecified).