Device-Level Wärmemanagement

Ab Windows 8 unterstützt Windows die Wärmeverwaltung auf Geräteebene für Kernelmodusgerätetreiber. Die Windows-Wärmeverwaltung hat folgende Ziele:

  • Verhindern, dass Geräte in einer Hardwareplattform überhitzt werden, was dazu führen kann, dass sie falsch oder unzuverlässlich funktionieren.

  • Vermeiden Sie es, benutzerfreundliche Oberflächen in einem Computergehäuse zu heiß zu machen, um sie bequem zu berühren oder zu halten.

Ähnlich wie beim Energiemanagement muss das Wärmemanagement plattformweit implementiert werden, indem gerätelokale Thermische Einschränkungen im Kontext globaler thermischer Bedingungen koordiniert werden. Durch die bereitstellung einer globalen Koordinierung kann das Betriebssystem die Kühlanforderungen auf mehrere Geräte so verteilen, dass die Störungen bei Aufgaben, die der Benutzer ausführt, minimiert werden. Thermische Anforderungen können intelligent mit anderen Systemanforderungen wie Energieverwaltung und Reaktionsfähigkeit auf Benutzeraktionen ausgeglichen werden.

Im Gegensatz dazu trifft ein Gerätetreiber, der versucht, die Wärmepegel für sein Gerät lokal und isoliert von den anderen Geräten auf der Plattform zu verwalten, eher schlechte Entscheidungen, die zu einer ineffizienten Energienutzung und einer nicht reagierenden Benutzeroberfläche führen.

Um am globalen Wärmemanagement teilzunehmen, implementiert ein Gerätetreiber eine GUID_THERMAL_COOLING_INTERFACE Treiberschnittstelle. Während des Systemstarts fragt ein vom System bereitgestellter Treiber, Acpi.sys, die Gerätetreiber im System ab, um zu ermitteln, welche von ihnen diese Schnittstelle unterstützen. Ein Treiber kann jederzeit eine IRP_MN_QUERY_INTERFACE Anforderung für diese Schnittstelle empfangen, nachdem die AddDevice-Routine für das Gerät des Treibers aufgerufen wurde. Als Reaktion auf diese Anforderung kann der Treiber für ein Gerät mit Wärmeverwaltungsfunktionen einen Zeiger auf eine THERMAL_COOLING_INTERFACE Struktur bereitstellen. Diese Struktur enthält Zeiger auf eine Reihe von Rückrufroutinen, die vom Treiber implementiert werden. Um die Temperaturwerte im Gerät zu verwalten, ruft das Betriebssystem diese Routinen direkt auf.

Die beiden Prinzipalroutinen in dieser Schnittstelle sind ActiveCooling und PassiveCooling. Die ActiveCooling-Routine des Fahrers aktiviert oder deaktiviert die aktive Kühlung im Gerät. Diese Routine kann beispielsweise einen Lüfter ein- und ausschalten. Die PassiveCooling-Routine des Fahrers steuert den Grad, in dem die Leistung des Geräts gedrosselt werden muss, um akzeptable Wärmewerte zu halten. Diese Routine kann beispielsweise aufgerufen werden, um das Gerät mit halber Geschwindigkeit auszuführen, um eine Überhitzung zu verhindern.

Standardmäßig ist vor dem ersten Aufruf der ActiveCooling-Routine die aktive Kühlung deaktiviert (z. B. ist der Lüfter deaktiviert). Vor dem ersten Aufruf der PassiveCooling-Routine konfiguriert der Treiber das Gerät so, dass es mit voller Leistung ohne Kühlungseinschränkungen ausgeführt wird.

Ein Treiber kann eine oder beide dieser Routinen implementieren, abhängig von den Funktionen der Gerätehardware. Weitere Informationen finden Sie unter Passive und Aktive Kühlmodi.