Dela via


Acpi.sys (Windows ACPI-drivrutin)

Drivrutinen för Windows Advanced Configuration and Power Interface (ACPI), Acpi.sys, är en inkorgskomponent i Windows-operativsystemet. Ansvaret för Acpi.sys omfattar stöd för energisparfunktioner och PnP-enhetsuppräkning (Plug and Play). På maskinvaruplattformar som har en ACPI BIOS gör HAL att Acpi.sys läses in under systemstarten vid basen av enhetsträdet. Acpi.sys fungerar som gränssnitt mellan operativsystemet och ACPI BIOS. Acpi.sys är transparent för de andra drivrutinerna i enhetsträdet.

Andra uppgifter som utförs av Acpi.sys på en viss maskinvaruplattform kan vara att omprogrammera resurserna för en COM-port eller aktivera USB-styrenheten för systemväckning.

ACPI-enheter

Maskinvaruplattformsleverantören anger en hierarki med ACPI-namnområden i ACPI BIOS för att beskriva plattformens maskinvarutopologi. Mer information finns i ACPI-namnområdeshierarkin.

För varje enhet som beskrivs i ACPI-namnområdeshierarkin skapar Windows ACPI-drivrutinen Acpi.sysantingen ett filterenhetsobjekt (filter DO) eller ett fysiskt enhetsobjekt (PDO). Om enheten är integrerad i systemkortet skapar Acpi.sys ett filterenhetsobjekt som representerar ett ACPI-bussfilter och kopplar det till enhetsstacken omedelbart ovanför busschauffören (PDO). För andra enheter som beskrivs i ACPI-namnområdet men inte på systemkortet skapar Acpi.sys PDO:en. Acpi.sys tillhandahåller energisparfunktioner och PnP-funktioner till enhetsstacken med dessa enhetsobjekt. Mer information finns i Enhetsstackar för en ACPI-enhet.

En enhet som Acpi.sys skapar ett enhetsobjekt för kallas för en ACPI-enhet. Uppsättningen AV ACPI-enheter varierar från en maskinvaruplattform till en annan och beror på ACPI BIOS och konfigurationen av moderkortet. Acpi.sys läser endast in ett ACPI-bussfilter för en enhet som beskrivs i ACPI-namnområdet och är permanent ansluten till maskinvaruplattformen (vanligtvis är den här enheten integrerad i kärn kisel eller lödd till systemkortet). Alla moderkortsenheter har inte ett ACPI-bussfilter.

Alla ACPI-funktioner är transparenta för drivrutiner på högre nivå. Dessa drivrutiner får inte göra några antaganden om förekomsten eller frånvaron av ett ACPI-filter i en viss enhetsstack.

Acpi.sys och ACPI BIOS stöder grundläggande funktioner för en ACPI-enhet. För att förbättra funktionerna i en ACPI-enhet kan enhetsleverantören tillhandahålla en WDM-funktionsdrivrutin. Mer information finns i Drift av en ACPI-enhetsfunktionsdrivrutin.

En ACPI-enhet anges av ett definitionsblock i systembeskrivningstabellerna i ACPI BIOS. En enhets definitionsblock anger bland annat en åtgärdsregion, som är ett sammanhängande block av enhetsminne som används för att komma åt enhetsdata. Endast Acpi.sys ändrar data i en åtgärdsregion. Enhetens funktionsdrivrutin kan läsa data i en åtgärdsregion men får inte ändra data. När den anropas överför en åtgärdsregionhanterare byte i åtgärdsregionen till och från databufferten i Acpi.sys. Den kombinerade driften av funktionsdrivrutinen och Acpi.sys är enhetsspecifik och definieras i ACPI BIOS av maskinvaruleverantören. I allmänhet har den funktionsdrivrutinen och Acpi.sys åtkomst till specifika områden inom en operationsregion för att utföra enhetsspecifika åtgärder och hämta information. Mer information finns i Stöd för en åtgärdsregion.

ACPI-kontrollmetoder

ACPI-kontrollmetoder är programvaruobjekt som deklarerar och definierar enkla åtgärder för att fråga och konfigurera ACPI-enheter. Kontrollmetoder lagras i ACPI BIOS och kodas i ett bytekodformat som kallas ACPI-datorspråk (AML). Kontrollmetoderna för en enhet läses in från systemets inbyggda programvara till enhetens ACPI-namnområde i minnet och tolkas av Windows ACPI-drivrutinen Acpi.sys.

Om du vill anropa en kontrollmetod initierar drivrutinen i kernelläge för en ACPI-enhet en IRP_MJ_DEVICE_CONTROL begäran som hanteras av Acpi.sys. För drivrutiner som läses in på ACPI-uppräknade enheter implementerar Acpi.sys alltid det fysiska enhetsobjektet (PDO) i drivrutinsstacken. Mer information finns i Utvärdera ACPI-kontrollmetoder.

ACPI-specifikation

Advanced Configuration and Power Interface Specification (ACPI 6.4-specifikation) finns på forumwebbplatsen för unified extensible Firmware Interface.

Revision 5.0 av ACPI-specifikationen introducerar en uppsättning funktioner för att stödja lågeffektsdrivna, mobila datorer som baseras på SoC-integrerade kretsar (System on Chip) och som implementerar den anslutna standby-strömmodellen . Från och med Windows 8 stöder Windows ACPI-drivrutinen Acpi.sysde nya funktionerna i ACPI 5.0-specifikationen. Mer information finns i Designguide för Windows ACPI för SoC-plattformar.

ACPI-felsökning

Systemintegratörer och UTVECKLARE av ACPI-enhetsdrivrutiner kan använda Microsoft AMLI-felsökningsprogrammet för att felsöka AML-kod. Eftersom AML är ett tolkat språk kräver AML-felsökning särskilda programvaruverktyg.

Mer information om AMLI-felsökningsprogrammet finns i ACPI-felsökning.

Microsoft ACPI-kompilator för källspråk (ASL)

Information om hur du kompilerar ACPI-källspråk (ASL) till ACPI-maskinspråk (AML) finns i Microsoft ASL-kompilatorn.

Version 5.0 av Microsoft ASL-kompilatorn stöder funktioner i ACPI 5.0-specifikationen.

ASL-kompilatorn distribueras med Windows Driver Kit (WDK).

ASL-kompilatorn (asl.exe) finns i Tools\<build>\<architecture>\ACPIVerify mappen för den installerade WDK:n, C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22631.0\x64till exempel .