Détermination de l’état d’alimentation correct de l’appareil
Le propriétaire de la stratégie d’alimentation vérifie le tableau DeviceState dans la structure DEVICE_CAPABILITIES pour déterminer la plage valide d’états d’alimentation des appareils pour chaque état d’alimentation du système. Le tableau répertorie l’état d’alimentation de l’appareil le plus élevé que l’appareil sous-jacent peut prendre en charge pour chaque état d’alimentation du système.
Lorsque vous choisissez un état spécifique à partir de cette plage, tenez compte des éléments suivants :
La plupart des appareils passent à l’état D0 lorsque le système passe à l’état S0.
La plupart des appareils passent à l’état D3 lorsque le système entre dans un état de veille. Toutefois, un appareil activé pour la mise en éveil peut être nécessaire pour entrer D1 ou D2 à la place, s’il prend en charge ces états. Pour plus d’informations, consultez Fonctionnalités d’alimentation des appareils de création de rapports.
Des règles spéciales s’appliquent à l’appareil qui contiendra le fichier de mise en veille prolongée. Si l’IRP système demande PowerSystemHibernate, l’appareil qui contiendra le fichier de mise en veille prolongée ne doit pas s’éteindre. Le propriétaire de la stratégie d’alimentation d’un tel appareil doit demander l’état d’alimentation D3 de l’appareil et enregistrer le contexte, mais les pilotes de l’appareil ne doivent pas le mettre hors tension.
Si l’IRP système demande PowerSystemShutdown, le pilote doit case activée la valeur POWER_ACTION sur Irp-Parameters.Power.ShutdownType> pour déterminer la raison du changement d’état. Pour plus d’informations, consultez System Power Actions.
Le propriétaire de la stratégie d’alimentation de l’appareil doit envoyer un IRP défini sur l’alimentation de l’appareil pour chaque IRP de définition de l’alimentation du système, même si l’appareil est déjà dans l’état d’alimentation correct de l’appareil. Si le pilote a précédemment suspendu les opérations de l’appareil en réponse à un IRP d’alimentation de requête, l’IRP à alimentation définie l’avertit d’arrêter la file d’attente des IRP et de revenir au fonctionnement normal pour son état d’alimentation actuel. La seule exception se produit lorsque l’appareil est dans l’état D3 ; dans ce cas, le pilote n’a pas besoin d’envoyer une demande de IRP_MN_SET_POWER supplémentaire pour D3.