Unterstützung von ACPI-Geräten

In diesem Abschnitt wird beschrieben, wie ein Anbieter einen WDM-Funktionstreiber in Windows verwenden kann, um die Funktionalität eines ACPI-Geräts (Advanced Configuration and Power Interface) zu verbessern.

ACPI-Geräte umfassen Systemgeräte auf niedriger Ebene, z. B. Batterien, Thermische Zonen und andere Geräte, die im ACPI-Namespace eines Systems definiert sind. Ein ACPI-Namespace ist ein hierarchischer Namespace, den ein ACPI-BIOS verwendet, um auf Objekte zu verweisen.

Der kombinierte Betrieb des vom System bereitgestellten ACPI-Treibers und des ACPI-BIOS unterstützt die grundlegenden Funktionen von ACPI-Geräten und ist für den Rest des Betriebssystems transparent. Ein ACPI-Gerät wird durch einen Definitionsblock in den ACPI-Systembeschreibungstabellen angegeben. Der Definitionsblock eines Geräts gibt unter anderem einen Vorgangsbereich an, der einen zusammenhängenden Block des Gerätespeichers angibt, der für den Zugriff auf Gerätedaten verwendet wird.

Um die Funktionalität eines ACPI-Geräts zu verbessern, kann der Anbieter einen WDM-Funktionstreiber bereitstellen, der über eine vom Treiber bereitgestellte Betriebsregion mit dem ACPI-BIOS kommuniziert. Der ACPI-Treiber greift auf die Vorgangsregion zu, indem er einen vom Funktionstreiber bereitgestellten Vorgangsregionshandler aufruft.

Durch die Kommunikation über ACPI-Betriebsregionen kann ein Funktionstreiber indirekt auf Geräte zugreifen, die normalerweise nur vom BIOS gesteuert werden, und das BIOS kann gerätespezifische Vorgänge aufrufen, die von der Konfiguration des Treibers und des Hostsystems abhängen. Der grundlegende Betriebsmechanismus sieht wie folgt aus:

  1. Das ACPI-BIOS liest oder schreibt Daten in der Betriebsregion eines Geräts.

  2. Um auf die Vorgangsregion zuzugreifen, ruft der ACPI-Treiber den Vorgangsregionshandler des Funktionstreibers auf.

  3. Der Vorgangsbereichshandler führt die für den Zugriff programmierte Aktion aus und gibt dem Zugriff zugeordnete Informationen zurück.

Die folgenden beiden Beispiele zeigen, wie ein Anbieter einen Funktionstreiber verwenden kann, um die Funktion eines ACPI-Geräts zu verbessern:

  1. Ein ACPI-Gerät kann auf einen Index in der Betriebsregion eines Funktionstreibers zugreifen, der dazu führt, dass der Treiber eine Sound-Karte Lautstärkeregelung in der vorinstallierten Software eines Anbieters aktiviert.

  2. Der Treiber überwacht die verbleibende Kapazität der Batterien, die Temperaturen von Wärmezonen und andere Dinge, auf die normalerweise nur das BIOS zugreift.

In den folgenden Themen wird beschrieben, wie Sie einen Funktionstreiber für ein ACPI-Gerät bereitstellen:

Gerätestapel für ein ACPI-Gerät

Betrieb eines ACPI-Gerätefunktionstreibers

Informationen zu den vom System bereitgestellten Supportroutinen, die ACPI-Gerätefunktionstreiber unterstützen, finden Sie unter ACPI-Vorgangsregionhandlerreferenz.

Weitere Informationen zu ACPI-Geräten und -Namespaces finden Sie in der ACPI-Spezifikation (Advanced Configuration and Power Interface).