Acpi.sys (controlador ACPI de Windows)

El controlador ACPI de Windows, Acpi.sys, es un componente de bandeja de entrada del sistema operativo Windows. Las responsabilidades de Acpi.sys incluyen compatibilidad con la administración de energía y la enumeración de dispositivos Plug and Play (PnP). En las plataformas de hardware que tienen un BIOS ACPI, el HAL hace que Acpi.sys se carguen durante el inicio del sistema en la base del árbol del dispositivo. Acpi.sys actúa como la interfaz entre el sistema operativo y el BIOS ACPI. Acpi.sys es transparente para los demás controladores del árbol de dispositivos.

Otras tareas realizadas por Acpi.sys en una plataforma de hardware determinada pueden incluir volver a programar los recursos para un puerto COM o habilitar el controlador USB para la reactivación del sistema.

En este tema

Dispositivos ACPI

El proveedor de la plataforma de hardware especifica una jerarquía de espacios de nombres ACPI en el BIOS ACPI para describir la topología de hardware de la plataforma. Para obtener más información, consulte Jerarquía de espacios de nombres ACPI.

Para cada dispositivo descrito en la jerarquía de espacios de nombres ACPI, el controlador ACPI de Windows, Acpi.sys, crea un objeto de dispositivo de filtro (DO de filtro) o un objeto de dispositivo físico (PDO). Si el dispositivo está integrado en la placa del sistema, Acpi.sys crea un objeto de dispositivo de filtro, que representa un filtro de bus ACPI y lo conecta a la pila de dispositivos inmediatamente encima del controlador de bus (PDO). Para otros dispositivos descritos en el espacio de nombres ACPI, pero no en la placa del sistema, Acpi.sys crea el PDO. Acpi.sys proporciona características de administración de energía y PnP a la pila de dispositivos con estos objetos de dispositivo. Para obtener más información, consulte Pilas de dispositivos para un dispositivo ACPI.

Un dispositivo para el que Acpi.sys crea un objeto de dispositivo se denomina dispositivo ACPI. El conjunto de dispositivos ACPI varía de una plataforma de hardware a la siguiente, y depende del BIOS ACPI y de la configuración de la placa base. Acpi.sys carga un filtro de bus ACPI solo para un dispositivo que se describe en el espacio de nombres ACPI y está conectado permanentemente a la plataforma de hardware (normalmente, este dispositivo está integrado en el silicio principal o soldado a la placa del sistema). No todos los dispositivos de placa base tienen un filtro de bus ACPI.

Toda la funcionalidad ACPI es transparente para los controladores de nivel superior. Estos controladores no deben realizar suposiciones sobre la presencia o ausencia de un filtro ACPI en cualquier pila de dispositivos determinada.

Acpi.sys y el BIOS ACPI admiten las funciones básicas de un dispositivo ACPI. Para mejorar la funcionalidad de un dispositivo ACPI, el proveedor del dispositivo puede proporcionar un controlador de función WDM. Para obtener más información, consulte Funcionamiento de un controlador de función de dispositivo ACPI.

Un dispositivo ACPI se especifica mediante un bloque de definición en las tablas de descripción del sistema en el BIOS ACPI. El bloque de definición de un dispositivo especifica, entre otras cosas, una región de operación, que es un bloque contiguo de memoria del dispositivo que se usa para acceder a los datos del dispositivo. Solo Acpi.sys modifica los datos de una región de operación. El controlador de funciones del dispositivo puede leer los datos de una región de operación, pero no debe modificarlos. Cuando se llama a , un controlador de región de operación transfiere bytes en la región de la operación hacia y desde el búfer de datos en Acpi.sys. El funcionamiento combinado del controlador de función y el Acpi.sys es específico del dispositivo y se define en el BIOS ACPI por el proveedor de hardware. En general, el controlador de función y Acpi.sys acceder a áreas concretas de una región de operación para realizar operaciones específicas del dispositivo y recuperar información. Para obtener más información, consulte Compatibilidad con una región de operación.

Métodos de control ACPI

Los métodos de control ACPI son objetos de software que declaran y definen operaciones simples para consultar y configurar dispositivos ACPI. Los métodos de control se almacenan en el BIOS ACPI y se codifican en un formato de código de bytes denominado lenguaje de máquina ACPI (AML). Los métodos de control de un dispositivo se cargan desde el firmware del sistema en el espacio de nombres ACPI del dispositivo en la memoria e interpretados por el controlador ACPI de Windows, Acpi.sys.

Para invocar un método de control, el controlador en modo kernel para un dispositivo ACPI inicia una solicitud de IRP_MJ_DEVICE_CONTROL , que se controla mediante Acpi.sys. En el caso de los controladores cargados en dispositivos enumerados por ACPI, Acpi.sys siempre implementa el objeto de dispositivo físico (PDO) en la pila de controladores. Para obtener más información, vea Evaluación de métodos de control ACPI.

Especificación ACPI

La especificación Advanced Configuration and Power Interface (ACPI 5.0) está disponible en el sitio web del Foro unified Extensible Firmware Interface.

La revisión 5.0 de la especificación ACPI presenta un conjunto de características para admitir equipos móviles de bajo consumo que se basan en circuitos integrados del sistema en chip (SoC) y que implementan el modelo de alimentación en espera conectado . A partir de Windows 8 y versiones posteriores, el controlador ACPI de Windows, Acpi.sys, admite las nuevas características de la especificación ACPI 5.0. Para obtener más información, consulta Guía de diseño de Windows ACPI para plataformas SoC.

Depuración ACPI

Los integradores de sistemas y los desarrolladores de controladores de dispositivos ACPI pueden usar el depurador de Microsoft AMLI para depurar código AML. Dado que AML es un lenguaje interpretado, la depuración de AML requiere herramientas de software especiales.

Para obtener más información sobre el depurador de AMLI, consulte Depuración ACPI.

Compilador del lenguaje de origen ACPI de Microsoft (ASL)

Para obtener información sobre cómo compilar el lenguaje de origen ACPI (ASL) en el lenguaje de máquina ACPI (AML), consulte Compilador de Microsoft ASL.

La versión 5.0 del compilador ASL de Microsoft admite características en la especificación ACPI 5.0.

El compilador ASL se distribuye con el Kit de controladores de Windows (WDK).

El compilador ASL (asl.exe) se encuentra en los directorios Tools\arm\ACPIVerify, Tools\arm64\ACPIVerify, Tools\x86\ACPIVerify y Tools\x64\ACPIVerify del WDK instalado, por ejemplo, C:\Archivos de programa (x86)\Windows Kits\10\Tools\x86\ACPIVerify.