Acpi.sys (Windows ACPI-Treiber)

Der Windows ACPI-Treiber Acpi.sys ist eine Posteingangskomponente des Windows-Betriebssystems. Zu den Aufgaben von Acpi.sys gehören die Unterstützung für die Energieverwaltung und Plug & Play (PnP)-Geräteenumeration. Auf Hardwareplattformen, die über ein ACPI-BIOS verfügen, bewirkt die HAL , dass Acpi.sys während des Systemstarts an 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 die Neuprogrammierung der Ressourcen für einen COM-Port oder das Aktivieren des USB-Controllers für die Systemreaktivierung sein.

In diesem Thema

ACPI-Geräte

Der Hersteller 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 in der ACPI-Namespacehierarchie beschriebene Gerät erstellt der Windows ACPI-Treiber Acpi.sys entweder ein Filtergeräteobjekt (Filter DO) oder ein physisches Geräteobjekt (PDO). Wenn das Gerät in die Systemplatine integriert ist, erstellt Acpi.sys ein Filtergeräteobjekt, 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 der Systemplatine beschrieben werden, erstellt Acpi.sys die PDO. Acpi.sys stellt dem Gerätestapel mit diesen Geräteobjekten Energieverwaltungs- und PnP-Funktionen bereit. 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 Hardwareplattform zu Hardwareplattform und hängt vom ACPI-BIOS und der Konfiguration der Hauptplatine ab. Acpi.sys lädt einen ACPI-Busfilter nur für ein Gerät, das im ACPI-Namespace beschrieben ist und dauerhaft mit der Hardwareplattform verbunden ist (in der Regel wird dieses Gerät in das Kernsilicium integriert oder mit der Systemplatine gelöt). 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 treffen.

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ätehersteller einen WDM-Funktionstreiber bereitstellen. Weitere Informationen finden Sie unter Betrieb 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 Gerätespeicherblock 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. Wenn ein Vorgangsbereichshandler aufgerufen wird, werden Bytes in der Vorgangsregion an den und vom Datenpuffer in Acpi.sys übertragen. Der kombinierte Betrieb von Funktionstreiber und Acpi.sys ist gerätespezifisch und wird vom Hardwarehersteller im ACPI-BIOS definiert. Im Allgemeinen greifen der Funktionstreiber und die Acpi.sys auf bestimmte Bereiche in einer Vorgangsregion zu, um gerätespezifische Vorgänge auszuführen und Informationen abzurufen. Weitere Informationen finden Sie unter Unterstützen einer Vorgangsregion.

ACPI-Steuerungsmethoden

ACPI-Steuerungsmethoden sind Softwareobjekte, die einfache Vorgänge zum Abfragen und Konfigurieren von ACPI-Geräten deklarieren und definieren. Steuerungsmethoden werden im ACPI-BIOS gespeichert und in einem Bytecodeformat namens ACPI Machine Language (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 interpretiert, Acpi.sys.

Um eine Steuerungsmethode aufzurufen, initiiert der Kernelmodustreiber für ein ACPI-Gerät eine IRP_MJ_DEVICE_CONTROL-Anforderung , die von Acpi.sys verarbeitet wird. Bei Treibern, die auf ACPI-enumerierten Geräten geladen werden, implementiert Acpi.sys immer das physische Geräteobjekt (PDO) im Treiberstapel. Weitere Informationen finden Sie unter Auswerten von ACPI-Steuerungsmethoden.

ACPI-Spezifikation

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

Revision 5.0 der ACPI-Spezifikation führt eine Reihe von Features zur Unterstützung von mobilen PCs mit geringem Stromverbrauch ein, die auf integrierten System-on-Chip-Schaltungen (SoC) basieren und das verbundene Standby-Leistungsmodell implementieren. Ab Windows 8 und höheren Versionen 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-Debuggen

Systemintegratoren und ACPI-Gerätetreiberentwickler können den Microsoft AMLI-Debugger verwenden, um AML-Code zu debuggen. Da AML eine interpretierte Sprache ist, erfordert das AML-Debuggen spezielle Softwaretools.

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

Microsoft ACPI Source Language (ASL)-Compiler

Informationen zum Kompilieren der ACPI-Quellsprache (ACPI Source Language, ASL) in ACPI Machine Language (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 in den Verzeichnissen Tools\arm\ACPIVerify, Tools\arm64\ACPIVerify, Tools\x86\ACPIVerify und Tools\x64\ACPIVerify des installierten WDK, z. B. C:\Programme (x86)\Windows Kits\10\Tools\x86\ACPIVerify.