Acpi.sys (driver ACPI di Windows)

Il driver ACPI di Windows, Acpi.sys, è un componente posta in arrivo del sistema operativo Windows. Le responsabilità di Acpi.sys includono il supporto per il risparmio energia e l'enumerazione del dispositivo Plug and Play (PnP). Nelle piattaforme hardware che dispongono di un BIOS ACPI, l'HAL causa il caricamento Acpi.sys durante l'avvio del sistema alla base dell'albero dei dispositivi. Acpi.sys funge da interfaccia tra il sistema operativo e il BIOS ACPI. Acpi.sys è trasparente per gli altri driver nell'albero dei dispositivi.

Altre attività eseguite da Acpi.sys in una determinata piattaforma hardware possono includere la riprogrammazione delle risorse per una porta COM o l'abilitazione del controller USB per la riattivazione del sistema.

Contenuto dell'argomento

Dispositivi ACPI

Il fornitore della piattaforma hardware specifica una gerarchia di spazi dei nomi ACPI nel BIOS ACPI per descrivere la topologia hardware della piattaforma. Per altre informazioni, vedere Gerarchia degli spazi dei nomi ACPI.

Per ogni dispositivo descritto nella gerarchia degli spazi dei nomi ACPI, il driver ACPI di Windows, Acpi.sys, crea un oggetto dispositivo di filtro (FILTRO DO) o un oggetto dispositivo fisico (PDO). Se il dispositivo è integrato nella scheda di sistema, Acpi.sys crea un oggetto dispositivo filtro, che rappresenta un filtro bus ACPI e lo collega allo stack di dispositivi immediatamente sopra il driver del bus (PDO). Per altri dispositivi descritti nello spazio dei nomi ACPI ma non nella scheda di sistema, Acpi.sys crea il PDO. Acpi.sys fornisce funzionalità di risparmio energia e PnP allo stack di dispositivi con questi oggetti dispositivo. Per altre informazioni, vedere Stack di dispositivi per un dispositivo ACPI.

Un dispositivo per il quale Acpi.sys crea un oggetto dispositivo viene denominato dispositivo ACPI. Il set di dispositivi ACPI varia da una piattaforma hardware alla successiva e dipende dal BIOS ACPI e dalla configurazione della scheda madre. Acpi.sys carica un filtro del bus ACPI solo per un dispositivo descritto nello spazio dei nomi ACPI ed è connesso in modo permanente alla piattaforma hardware (in genere, questo dispositivo è integrato nel processore core o venduto alla scheda di sistema). Non tutti i dispositivi scheda madre hanno un filtro bus ACPI.

Tutte le funzionalità ACPI sono trasparenti per i driver di livello superiore. Questi driver non devono fare ipotesi sulla presenza o sull'assenza di un filtro ACPI in uno stack di dispositivi specifico.

Acpi.sys e il BIOS ACPI supportano le funzioni di base di un dispositivo ACPI. Per migliorare la funzionalità di un dispositivo ACPI, il fornitore del dispositivo può fornire un driver di funzione WDM. Per altre informazioni, vedere Operazione di un driver di funzione del dispositivo ACPI.

Un dispositivo ACPI viene specificato da un blocco di definizione nelle tabelle di descrizione del sistema nel BIOS ACPI. Il blocco di definizione di un dispositivo specifica, tra le altre cose, un'area operativa, un blocco contiguo di memoria del dispositivo usato per accedere ai dati del dispositivo. Solo Acpi.sys modifica i dati in un'area dell'operazione. Il driver di funzione del dispositivo può leggere i dati in un'area operativa, ma non modificare i dati. Quando viene chiamato, un gestore dell'area operativa trasferisce i byte nell'area dell'operazione da e verso il buffer di dati in Acpi.sys. L'operazione combinata del driver di funzione e Acpi.sys è specifica del dispositivo ed è definita nel BIOS ACPI dal fornitore dell'hardware. In generale, il driver di funzione e Acpi.sys accedere a aree specifiche in un'area operativa per eseguire operazioni specifiche del dispositivo e recuperare informazioni. Per altre informazioni, vedere Supporto di un'area operativa.

Metodi di controllo ACPI

I metodi di controllo ACPI sono oggetti software che dichiarano e definiscono operazioni semplici per eseguire query e configurare i dispositivi ACPI. I metodi di controllo vengono archiviati nel BIOS ACPI e vengono codificati in un formato di codice byte denominato AML (ACPI Machine Language). I metodi di controllo per un dispositivo vengono caricati dal firmware di sistema nello spazio dei nomi ACPI del dispositivo in memoria e interpretati dal driver ACPI di Windows Acpi.sys.

Per richiamare un metodo di controllo, il driver in modalità kernel per un dispositivo ACPI avvia una richiesta di IRP_MJ_DEVICE_CONTROL , gestita da Acpi.sys. Per i driver caricati in dispositivi enumerati ACPI, Acpi.sys implementa sempre l'oggetto dispositivo fisico (PDO) nello stack di driver. Per altre informazioni, vedere Valutazione dei metodi di controllo ACPI.

Specifica ACPI

La specifica Advanced Configuration and Power Interface (ACPI 5.0 specification) è disponibile nel sito Web unified Extensible Firmware Interface Forum.

La revisione 5.0 della specifica ACPI introduce un set di funzionalità per supportare PC mobili a basso consumo basati su circuiti integrati SoC (System on Chip) e che implementano il modello di alimentazione di standby connesso . A partire da Windows 8 e versioni successive, il driver ACPI di Windows, Acpi.sys, supporta le nuove funzionalità nella specifica ACPI 5.0. Per altre informazioni, vedere Guida alla progettazione ACPI di Windows per le piattaforme SoC.

Debug ACPI

Gli integratori di sistema e gli sviluppatori di driver di dispositivo ACPI possono usare il debugger Microsoft AMLI per eseguire il debug del codice AML. Poiché AML è un linguaggio interpretato, il debug AML richiede strumenti software speciali.

Per altre informazioni sul debugger AMLI, vedere Debug ACPI.

Compilatore del linguaggio di origine ACPI (ASL) Microsoft

Per informazioni sulla compilazione di ACPI Source Language (ASL) in ACPI Machine Language (AML), vedere Il compilatore Microsoft ASL.

La versione 5.0 del compilatore Microsoft ASL supporta le funzionalità nella specifica ACPI 5.0.

Il compilatore ASL viene distribuito con Windows Driver Kit (WDK).

Il compilatore ASL (asl.exe) si trova nelle directory Tools\arm\ACPIVerify, Tools\arm64\ACPIVerify, Tools\x86\ACPIVerify e Tools\x64\ACPIVerify della WDK installata, ad esempio C:\Programmi (x86)\Windows Kits\10\Tools\x86\ACPIVerify.