Microsoft ASL 编译器

Microsoft ACPI 源语言 (ASL) 编译器版本 5.0 支持高级配置和电源接口规范 5.0(ACPI 5.0 规范)中的功能。 ASL 编译器随 Windows 驱动程序工具包 (WDK) 一起分发。

下载 Windows 驱动程序工具包 (WDK)

ASL 编译器(asl.exe)位于已安装 WDK 的 Tools\arm\ACPIVerify、Tools\arm64\ACPIVerify、Tools\x86\ACPIVerify 和 Tools\x64\ACPIVerify 目录中, C:\Program Files (x86)\Windows Kits\10\Tools\<build #>\<build architecture>\ACPIVerify例如。

首先需要安装 SDK,然后安装 WDK。 两个工具包的内部版本号必须匹配。

命令行选项

ASL 编译器支持多个命令行选项。 若要列出版本信息和可用的命令行选项,请在命令提示符窗口中运行命令“asl /?”。

ASL 编译器用法

ASL 编译器支持以下命令行选项:

asl /?
asl [/nologo] /d <BinFile>
asl [/nologo] /u [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <AMLFile>
asl [/nologo] /tab=<TabSig> [/c] [/Fa=<ASMfile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>]
asl [/nologo] [/Fo=<AMLFile>] [/Fa=<ASMFile>] [/Fl=<LSTFile>] [/Fn=<NSDFile>] <ASLFile>
选项 说明
打印此帮助消息。
nologo 禁止显示徽标横幅。
Fo=<AMLFile> 重写 DefinitionBlock 中的 AML 文件名。
Fa=<ASMFile> 生成一个 。名为 ASMFile> 的 <ASM 文件。
Fn=<NSDFile> 使用名称 NSDFile> 生成 NameSpace <转储文件。
d 以文本形式转储二进制文件。
u 将 AML 文件取消组合到 .ASL 文件(默认值)或 .LST 文件。
tab=<TabSig> 将 ASL 表取消组合到 .ASL 文件(默认值)或 .LST 文件。 将非 ASL 表转储到.TXT文件。 如果 <TabSig> 为“*”,则会将所有表转储到ACPI.TXT。 <TabSig> 也可以是表的物理地址。
c 从表创建二进制文件。

使用 Microsoft ASL 编译器的 ACPI 表加载功能

在系统开发期间,有一种方法可以模拟各种 ACPI BIOS 构造并在开发系统上测试它们。 Windows 操作系统允许从 Windows 注册表而不是从电脑的 BIOS ROM 加载某些 ACPI 表。 使用此功能需要管理员权限,还需要在系统上启用测试签名。 对于支持 UEFI 安全启动的系统,无法启用测试签名,并且除非禁用 UEFI 安全启动或系统上安装了 Windows 调试策略,否则无法使用编译器的表加载功能。

若要使用表加载功能,要重载的 ACPI 表必须满足以下要求:

  • 要重载的表必须已存在于系统的 BIOS ROM 中。 例如,DSDT 可以重载;但是,如果计算机没有 SSDT,则无法强制从此注册表替代机制加载 SSDT。

  • 该表必须包含 Windows ACPI 解释器(Acpi.sys驱动程序)通常使用的 AML 代码。

  • 将加载版本号最高的表。 加载到注册表中进行测试的表的版本号必须高于 BIOS ROM 中的同一个表。

  • 要加载的表必须采用编译格式(AML)格式,并在正确的位置加载到注册表中,并指定了正确的参数。 本文所述的机制旨在处理加载表和配置注册表的所有方面。

警告

本主题中所述的过程可能会使 Windows 系统处于不可启动状态。 在尝试此处概述的过程之前,请确保你有权访问具有 NTFS 文件系统支持(即同一台计算机上的“安全生成”)的另一个操作系统。 此过程仅适用于系统开发人员和测试人员,不应在任何对于开发或生产目的至关重要的计算机上使用。

ACPI-table-load usage

若要将 ACPI 表加载到注册表中以进行测试,将按如下所示调用 ASL 编译器:

asl.exe /loadtable [-v] [-d] <AMLFile>

其中,AMLFile 是编译的 AML 文件的名称,其中包含要加载到注册表中的表。

选项 说明
-v 详细模式。 打开实用工具的额外调试输出。
-d 删除。 从注册表中删除以前加载的 AML 文件,并删除所有关联的注册表项。

其他资源