Unterstützung von ACPI-Geräten

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

ACPI-Geräte umfassen Geräte auf niedriger Systemebene wie 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 Betriebsbereich 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 mit dem ACPI-BIOS über eine vom Treiber bereitgestellte Betriebsregion kommuniziert. Der ACPI-Treiber greift auf die Betriebsregion zu, indem ein vom Funktionstreiber bereitgestellter Betriebsregion-Handler aufgerufen wird.

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 ist der folgende:

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

  2. Um auf die Betriebsregion zuzugreifen, ruft der ACPI-Treiber den Betriebsregion-Handler des Funktionstreibers auf.

  3. Der Betriebsregion-Handler führt jede Aktion aus, die für den Zugriff programmiert ist, und gibt Informationen zurück, die dem Zugriff zugeordnet sind.

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, wodurch der Treiber eine Soundkartenlautstärkeregelung in der vorinstallierten Software eines Anbieters aktiviert.

  2. Der Treiber überwacht die verbleibende Kapazität die Batterien, die Temperaturen Thermischer Zonen und andere Dinge, auf die normalerweise nur über das BIOS zugegriffen wird.

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

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

Betrieb eines ACPI-Gerätefunktionstreibers

Informationen zu den vom System bereitgestellten Routinen, die ACPI-Gerätefunktionstreiber unterstützen, finden Sie unter Referenz zu ACPI-Betriebsregion-Handlern.

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