Acpi.sys (Windows ACPI-Treiber)

Der Windows ACPI-Treiber, Acpi.sys, ist eine Posteingangskomponente des Windows-Betriebssystems. Die Verantwortlichkeiten von Acpi.sys umfassen unterstützung für die Energieverwaltung und Plug & Play (PnP)-Geräteaufzählung. Auf Hardwareplattformen, die über ein ACPI-BIOS verfügen, bewirkt die HAL , dass Acpi.sys während des Systemstarts auf der Basis der Gerätestruktur geladen werden. Acpi.sys fungiert als Schnittstelle zwischen dem Betriebssystem und dem ACPI-BIOS. Acpi.sys ist für die anderen Treiber in der Gerätestruktur transparent.

Andere Aufgaben, die von Acpi.sys auf einer bestimmten Hardwareplattform ausgeführt werden, können das Neuprogrammieren der Ressourcen für einen COM-Port oder das Aktivieren des USB-Controllers für die Systemreaktivierung umfassen.

In diesem Thema

ACPI-Geräte

Der Anbieter der Hardwareplattform gibt eine Hierarchie von ACPI-Namespaces im ACPI-BIOS an, um die Hardwaretopologie der Plattform zu beschreiben. Weitere Informationen finden Sie unter ACPI-Namespacehierarchie.

Für jedes Gerät, das in der ACPI-Namespacehierarchie beschrieben wird, erstellt der Windows ACPI-Treiber Acpi.sys entweder ein Filtergeräteobjekt (Filter-DO) oder ein physisches Geräteobjekt (PDO). Wenn das Gerät in das System board integriert ist, erstellt Acpi.sys ein Filtergerätobjekt, das einen ACPI-Busfilter darstellt, und fügt es direkt über dem Bustreiber (PDO) an den Gerätestapel an. Für andere Geräte, die im ACPI-Namespace, aber nicht auf dem Systemboard beschrieben werden, erstellt Acpi.sys die PDO. Acpi.sys bietet Power Management- und PnP-Funktionen für den Gerätestapel mit diesen Geräteobjekten. Weitere Informationen finden Sie unter "Gerätestapel" für ein ACPI-Gerät.

Ein Gerät, für das Acpi.sys ein Geräteobjekt erstellt, wird als ACPI-Gerät bezeichnet. Der Satz von ACPI-Geräten variiert von einer Hardwareplattform zur nächsten und hängt vom ACPI-BIOS und der Konfiguration des Motherboards ab. Acpi.sys lädt einen ACPI-Busfilter nur für ein Gerät, das im ACPI-Namespace beschrieben wird und dauerhaft mit der Hardwareplattform verbunden ist (in der Regel ist dieses Gerät in das Kern-Silizium integriert oder an das Systemboard gelötet). Nicht alle Hauptplatinengeräte verfügen über einen ACPI-Busfilter.

Alle ACPI-Funktionen sind für Treiber höherer Ebene transparent. Diese Treiber dürfen keine Annahmen über das Vorhandensein oder Fehlen eines ACPI-Filters in einem bestimmten Gerätestapel machen.

Acpi.sys und das ACPI-BIOS unterstützen die grundlegenden Funktionen eines ACPI-Geräts. Um die Funktionalität eines ACPI-Geräts zu verbessern, kann der Geräteanbieter einen WDM-Funktionstreiber bereitstellen. Weitere Informationen finden Sie unter Operation eines ACPI-Gerätefunktionstreibers.

Ein ACPI-Gerät wird durch einen Definitionsblock in den Systembeschreibungstabellen im ACPI-BIOS angegeben. Der Definitionsblock eines Geräts gibt unter anderem einen Vorgangsbereich an, bei dem es sich um einen zusammenhängenden Block des Gerätespeichers handelt, der für den Zugriff auf Gerätedaten verwendet wird. Nur Acpi.sys ändert die Daten in einem Vorgangsbereich. Der Funktionstreiber des Geräts kann die Daten in einem Vorgangsbereich lesen, darf die Daten jedoch nicht ändern. Bei Aufruf überträgt ein Vorgangsbereichshandler Bytes in der Vorgangsregion an und vom Datenpuffer in Acpi.sys. Der kombinierte Betrieb des Funktionstreibers und Acpi.sys ist gerätespezifisch und wird vom Hardwareanbieter im ACPI-BIOS definiert. Im Allgemeinen greifen der Funktionstreiber und Acpi.sys auf bestimmte Bereiche in einem Vorgangsbereich zugreifen, um gerätespezifische Vorgänge auszuführen und Informationen abzurufen. Weitere Informationen finden Sie unter Unterstützen eines Vorgangsbereichs.

ACPI-Steuerelementmethoden

ACPI-Steuerelementmethoden sind Softwareobjekte, die einfache Vorgänge zum Abfragen und Konfigurieren von ACPI-Geräten deklarieren und definieren. Steuermethoden werden im ACPI-BIOS gespeichert und in einem Bytecodeformat mit dem Namen ACPI-Computersprache (AML) codiert. Die Steuerungsmethoden für ein Gerät werden von der Systemfirmware in den ACPI-Namespace des Geräts im Arbeitsspeicher geladen und vom Windows ACPI-Treiber Acpi.sys interpretiert.

Um eine Steuerelementmethode aufzurufen, initiiert der Kernelmodustreiber für ein ACPI-Gerät eine IRP_MJ_DEVICE_CONTROL Anforderung, die von Acpi.sys behandelt wird. Für Treiber, die auf ACPI-enumerierten Geräten geladen wurden, implementiert Acpi.sys immer das physische Geräteobjekt (PDO) im Treiberstapel. Weitere Informationen finden Sie unter Auswerten von ACPI-Steuerelementmethoden.

ACPI-Spezifikation

Die Advanced Configuration and Power Interface Specification (ACPI 6.4 Specification) ist auf der Unified Extensible Firmware Interface Forum-Website verfügbar.

Revision 5.0 der ACPI-Spezifikation führt eine Reihe von Features ein, die low-power, mobile PCs unterstützen, die auf integrierten System-on-Chip-Schaltkreisen (SoC) basieren und das verbundene Standby-Leistungsmodell implementieren. Ab Windows 8 unterstützt der Windows ACPI-Treiber Acpi.sys die neuen Features in der ACPI 5.0-Spezifikation. Weitere Informationen finden Sie im Windows ACPI-Entwurfshandbuch für SoC-Plattformen.

ACPI-Debugging

Systemintegratoren und ACPI-Gerätetreiberentwickler können den Microsoft AMLI-Debugger zum Debuggen von AML-Code verwenden. Da AML eine interpretierte Sprache ist, erfordert DAS AML-Debugging spezielle Softwaretools.

Weitere Informationen zum AMLI-Debugger finden Sie unter ACPI-Debugging.

Microsoft ACPI-Quellsprache (ASL)-Compiler

Informationen zum Kompilieren der ACPI-Quellsprache (ACPI Source Language, ASL) in der ACPI-Computersprache (AML) finden Sie unter Microsoft ASL-Compiler.

Version 5.0 des Microsoft ASL-Compilers unterstützt Features in der ACPI 5.0-Spezifikation.

Der ASL-Compiler wird mit dem Windows Driver Kit (WDK) verteilt.

Der ASL-Compiler (asl.exe) befindet sich beispielsweise C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22631.0\x64im Tools\<build>\<architecture>\ACPIVerify Ordner des installierten WDK.