Acpi.sys (Windows ACPI 驱动程序)

Windows 高级配置和 Power Interface (ACPI) 驱动程序(Acpi.sys)是 Windows作系统的收件箱组件。 Acpi.sys 的职责包括对电源管理和即插即用(PnP)设备枚举的支持。 在具有 ACPI BIOS 的硬件平台上, HAL 会导致在 设备树基础的系统启动过程中加载 Acpi.sys。 Acpi.sys 充当作系统和 ACPI BIOS 之间的接口。 Acpi.sys 对设备树中的其他驱动程序是透明的。

Acpi.sys 在特定硬件平台上执行的其他任务可能包括重新编程 COM 端口的资源,或者为系统唤醒启用 USB 控制器。

ACPI 设备

硬件平台供应商在 ACPI BIOS 中指定 ACPI 命名空间的层次结构,以描述平台的硬件拓扑。 有关详细信息,请参阅 ACPI 命名空间层次结构

对于 ACPI 命名空间层次结构中所述的每个设备,Windows ACPI 驱动程序 Acpi.sys创建筛选器设备对象(筛选器 DO)或物理设备对象(PDO)。 如果设备集成到系统板中,Acpi.sys 创建一个筛选器设备对象,表示 ACPI 总线筛选器,并将其附加到总线驱动程序(PDO)上方的设备堆栈。 对于 ACPI 命名空间中介绍但不在系统板上描述的其他设备,Acpi.sys 创建 PDO。 Acpi.sys 通过这些设备对象向设备堆栈提供电源管理和 PnP 功能。 有关详细信息,请参阅 ACPI 设备的设备堆栈

Acpi.sys 为其创建设备对象的设备称为 ACPI 设备。 ACPI 设备集因一个硬件平台而异,具体取决于 ACPI BIOS 和主板的配置。 Acpi.sys 仅为 ACPI 命名空间中描述的设备加载 ACPI 总线筛选器,并永久连接到硬件平台(通常,此设备已集成到核心硅或焊接到系统板)。 并非所有主板设备都有 ACPI 总线筛选器。

所有 ACPI 功能对更高级别的驱动程序都是透明的。 这些驱动程序不得假设任何给定设备堆栈中是否存在 ACPI 筛选器。

Acpi.sys 和 ACPI BIOS 支持 ACPI 设备的基本功能。 为了增强 ACPI 设备的功能,设备供应商可以提供 WDM 函数驱动程序。 有关详细信息,请参阅 ACPI 设备功能驱动程序的操作

ACPI 设备由 ACPI BIOS 中的 系统说明表中 的定义块指定。 设备的定义块在指定多个要素时,其中包括一个操作区域,即用于访问设备数据的连续设备内存块。 仅 Acpi.sys 在操作区域中修改数据。 设备的函数驱动程序可以读取作区域中的数据,但不得修改数据。 调用时,操作区处理程序 会将操作区中的字节传输到 Acpi.sys中的数据缓冲区。 函数驱动程序与 Acpi.sys 的联合操作是设备特定的,由硬件供应商在 ACPI BIOS 中定义。 通常,函数驱动程序和 Acpi.sys 访问操作区域中的特定区域以执行特定于设备的操作并检索信息。 有关详细信息,请参阅 支持操作区域

ACPI 控制方法

ACPI 控制方法是用于定义并声明简单操作以查询和配置 ACPI 设备的软件对象。 控制方法存储在 ACPI BIOS 中,并采用称为 ACPI 计算机语言(AML)的字节代码格式进行编码。 设备的控制方法从系统固件加载到内存中的设备的 ACPI 命名空间,并由 Windows ACPI 驱动程序解释 Acpi.sys。

若要调用控制方法,ACPI 设备的内核模式驱动程序会启动由 Acpi.sys处理的 IRP_MJ_DEVICE_CONTROL 请求。 对于在 ACPI 枚举设备上加载的驱动程序,Acpi.sys 始终在驱动程序堆栈中实现物理设备对象(PDO)。 有关详细信息,请参阅 评估 ACPI 控件方法

ACPI 规范

高级配置和电源接口规范ACPI 6.4 规范)可从统一可扩展固件接口论坛网站获得。

ACPI 规范的修订版 5.0 引入了一组功能,用于支持基于芯片系统(SoC)集成电路的低功率移动电脑,并实现 连接的备用 电源模型。 从 Windows 8 开始,Windows ACPI 驱动程序 Acpi.sys支持 ACPI 5.0 规范中的新功能。 有关详细信息,请参阅 适用于 SoC 平台的 Windows ACPI 设计指南

ACPI 调试

系统集成商和 ACPI 设备驱动程序开发人员可以使用 Microsoft AMLI 调试器 调试 AML 代码。 由于 AML 是解释语言,因此 AML 调试需要特殊的软件工具。

有关 AMLI 调试器的详细信息,请参阅 ACPI 调试

Microsoft ACPI 源语言 (ASL) 编译器

有关将 ACPI 源语言(ASL)编译为 ACPI 计算机语言(AML)的信息,请参阅 MICROSOFT ASL 编译器

Microsoft ASL 编译器版本 5.0 支持 ACPI 5.0 规范中的功能。

ASL 编译器随 Windows 驱动程序工具包(WDK)一起分发。

ASL 编译器(asl.exe)位于已安装的 WDK 的 Tools\<build>\<architecture>\ACPIVerify 文件夹中,例如 C:\Program Files (x86)\Windows Kits\10\Tools\10.0.22631.0\x64