gestion thermique Device-Level
À compter de Windows 8, Windows prend en charge la gestion thermique au niveau de l’appareil pour les pilotes de périphérique en mode noyau. La gestion thermique Windows a les objectifs suivants :
Empêchez les appareils d’une plateforme matérielle de surchauffer, ce qui peut les amener à fonctionner de manière incorrecte ou non.
Évitez de rendre les surfaces accessibles à l’utilisateur sur un boîtier d’ordinateur trop chaud pour le toucher ou le tenir confortablement.
Comme pour la gestion de l’alimentation, la gestion thermique doit être implémentée à l’échelle de la plateforme en coordonnant les contraintes thermiques locales des appareils dans le contexte de conditions thermiques globales. En fournissant une coordination globale, le système d’exploitation peut répartir les exigences de refroidissement sur plusieurs appareils de manière à réduire les interférences avec les tâches effectuées par l’utilisateur. Les exigences thermiques peuvent être équilibrées de manière intelligente avec d’autres exigences système, telles que la gestion de l’alimentation et la réactivité aux actions de l’utilisateur.
En revanche, un pilote de périphérique qui tente de gérer localement les niveaux thermiques de son appareil, à l’isolement des autres appareils de la plateforme, est plus susceptible de prendre de mauvaises décisions qui se traduisent par une utilisation inefficace de l’alimentation et une interface utilisateur qui ne répond pas.
Pour participer à la gestion thermique globale, un pilote de périphérique implémente une interface de pilote GUID_THERMAL_COOLING_INTERFACE. Lors du démarrage du système, un pilote fourni par le système, Acpi.sys, interroge les pilotes de périphérique dans le système pour déterminer lequel d’entre eux prend en charge cette interface. Un pilote peut recevoir une demande IRP_MN_QUERY_INTERFACE pour cette interface à tout moment après l’appel de la routine AddDevice pour l’appareil du pilote. En réponse à cette demande, le pilote d’un appareil doté de fonctionnalités de gestion thermique peut fournir un pointeur vers une structure THERMAL_COOLING_INTERFACE . Cette structure contient des pointeurs vers un ensemble de routines de rappel implémentées par le pilote. Pour gérer les niveaux thermiques dans l’appareil, le système d’exploitation appelle ces routines directement.
Les deux principales routines de cette interface sont ActiveCooling et PassiveCooling. La routine ActiveCooling du pilote engage ou désactive le refroidissement actif dans l’appareil. Par exemple, cette routine peut activer et désactiver un ventilateur. La routine PassiveCooling du conducteur contrôle le degré de limitation des performances de l’appareil pour maintenir des niveaux thermiques acceptables. Par exemple, cette routine peut être appelée pour exécuter l’appareil à demi-vitesse afin d’éviter sa surchauffe.
Par défaut, avant le premier appel à la routine ActiveCooling , le refroidissement actif est désengagé (par exemple, le ventilateur est désactivé). Avant le premier appel à la routine PassiveCooling , le pilote configure l’appareil pour qu’il s’exécute à pleine performance, sans aucune restriction de refroidissement.
Un pilote peut implémenter l’une de ces routines ou les deux, en fonction des fonctionnalités du matériel de l’appareil. Pour plus d’informations, consultez Modes de refroidissement passif et actif.