Bug 检查 0xA5:ACPI_BIOS_ERROR

ACPI_BIOS_ERROR Bug 检查的值为 0x000000A5。 此 Bug 检查表明计算机的高级配置和电源接口 (ACPI) BIOS 不完全符合 ACPI 规范。

重要

这篇文章适合程序员阅读。 如果您是在使用计算机时收到蓝屏错误代码的客户,请参阅蓝屏错误疑难解答

ACPI_BIOS_ERROR 参数

参数 1 标识不兼容的类型。 其他参数的含义取决于参数 1 的值。

如果 BIOS 不兼容与即插即用 (PnP) 或电源管理相关,则使用以下参数。

参数 1 参数 2 参数 3 参数 4 原因

0x01

ACPI 的 deviceExtension

ACPI 的 ResourceList

0:找不到资源列表

1:列表中未找到 IRQ 资源

ACPI 无法在启动 ACPI 时交给它的资源中找到系统控制中断 (SCI) 向量。

0x02

(请参阅本页后面的表格)

0x03

正在运行的 ACPI 对象

解释器的返回值

控件方法的名称(采用 ULONG 格式)

ACPI 在创建设备扩展来表示 ACPI 命名空间时尝试运行控制方法,但此控制方法失败了。

0x04

_PRW 所属的 ACPI 扩展

指向方法的指针

返回 的 DataType (请参阅 Amli.h)

ACPI 评估了一个_PRW,并期望找到一个整数作为包元素。

0x05

_PRW 所属的 ACPI 扩展

Aointer 到 _PRW

_PRW 中的元素数量

ACPI 评估了 _PRW,返回的包未能包含至少两个元素。 ACPI 规范要求两个元素始终存在于 _PRW 中。

0x06

_PRx 所属的 ACPI 扩展

指向 _PRx 的指针

指向要查找的对象的名称的指针

ACPI 尝试查找命名对象,但找不到该对象。

0x07

方法所属的 ACPI 扩展

指向方法的指针

返回 的 DataType (请参阅 Amli.h)

ACPI 评估了一种方法,并期望在返回中接收缓冲区。 但是,该方法返回了一些其他数据类型。

0x08

方法所属的 ACPI 扩展

指向方法的指针

返回 的 DataType (请参阅 Amli.h)

ACPI 评估了一个方法,并期望在返回中接收整数。 但是,该方法返回了一些其他数据类型。

0x09

方法所属的 ACPI 扩展

指向方法的指针

返回 的 DataType (请参阅 Amli.h)

ACPI 评估了一种方法,并期望在返回中接收数据包。 但是,该方法返回了一些其他数据类型。

0x0A

方法所属的 ACPI 扩展

指向方法的指针

返回 的 DataType (请参阅 Amli.h)

ACPI 评估了一种方法,并期望在返回中接收字符串。 但是,该方法返回了一些其他数据类型。

0x0B

_EJD 所属的 ACPI 扩展

解释器返回的状态

ACPI 尝试查找的对象名称

ACPI 找不到 _EJD 字符串引用的对象。

0x0C

ACPI 为其找到了扩展坞设备的 ACPI 扩展

指向 _EJD 方法的指针

0:BIOS 未声明系统为停靠状态

1:扩展坞设备的重复设备扩展

ACPI 为扩展坞支持提供了错误或不充分的信息。

0x0D

ACPI 需要对象的 ACPI 扩展

ACPI 查找的方法的 (ULONG) 名称

0:基本情况

1:冲突

ACPI 在命名空间中找不到所需的方法或对象。如果没有 _HID 或 _ADR,则使用此 Bug 检查代码。

0x0E

ACPI 需要对象的 NS PowerResource

ACPI 查找的方法的 (ULONG) 名称

0:基本情况

ACPI 在电源资源(或“设备”以外的实体)的命名空间中找不到所需方法或对象。 如果电源资源没有 _ON、_OFF 或 _STA,则使用此 Bug 检查 代码。

0x0F

ACPI 正在分析的当前缓冲区

缓冲区的标记

缓冲区的指定长度

ACPI 无法分析资源描述符。

0x10

(请参阅本页后面的表格)

0x11

(请参阅本页后面的表格)

0x14

ACPI 正在分析的当前缓冲区

缓冲区的标记

指向包含缓冲区的 ULONGLONG 长度的变量的指针

ACPI 无法分析资源描述符。 长度超过 MAXULONG。

0x15

ACPI 计算机语言 (AML) 上下文

1:未能加载表

2:找不到参数路径字符串对象

3:未能将参数数据插入参数路径字符串对象

4:系统内存不足

NT 状态代码

尝试加载表时,ACPI 出现致命错误。

0x16

指向父 NSOBJ 的指针

指向非法子 ACPI 命名空间对象的指针

Reserved

ACPI 在处理 xSDT 时出现致命错误。 对象被声明为不能具有子级的父级的子级。

如果发生中断路由失败或不兼容,则使用以下参数。

参数 1 参数 2 参数 3 参数 4 原因

0x2001

InterruptModel(整数)

解释器的返回值

指向控制方法的指针

ACPI 试图评估 PIC 控制方法,但失败了。

0x10001

指向设备对象的指针

指向设备对象父级的指针

指向 _PRT 对象的指针

(请参阅以下注释部分)

ACPI 尝试执行中断路由,但失败了。

0x10002

指向设备对象的指针

指向 ACPI 正在查找但找不到的字符串名称的指针

指向 _PRT 对象的指针

(请参阅以下注释部分)

ACPI 找不到 _PRT 中引用的链接节点。

0x10003

指向设备对象的指针

设备 ID 或函数编号。

此 DWORD 编码如下:位5:0 是 PCI 设备编号,位 8:6 是 PCI 函数编号

指向 _PRT 对象的指针

(请参阅以下注释部分)

ACPI 在设备的 _PRT 包中找不到映射。

0x10005

指向 _PRT 对象的指针

(请参阅以下注释部分)

指向当前 _PRT 元素的指针。

(此指针是 _PRT 中的索引。

设备 ID 或函数编号。

此 DWORD 编码如下:位5:0 是 PCI 函数编号,位 31:16 是 PCI 设备编号

ACPI 在 _PRT 中找到了函数 ID 不是所有 F 的条目。

(_PRT 条目的泛型格式是指定设备编号,但函数编号不是。)

0x10006

指向链接节点的指针。

(此设备缺少 _DIS 方法。)

0

0

ACPI 找到了链接节点,但无法禁用该节点。

(必须禁用链接节点才能重新编程。)

0x10007

找不到的向量

0

0

_PRT 包含对 I/O APIC 条目的 MAPIC 表中未描述的向量的引用。

0x10008

无效的中断级别。

0

0

ACPI SCI 中断级别无效。

0x10009

0

0

0

无法找到固定的 ACPI 说明表 (FADT)。

0x1000A

0

0

0

无法找到根系统说明指针 (RSDP) 或扩展系统说明表 (XSDT)

0x1000B

ACPI 表签名

指向 ACPI 表的指针

0

ACPI 表的长度与表修订不一致。

0x1000C

修订 ID

功能索引

0

用于中断返回的格式错误数据的 _DSM 方法

0x1000D

设备的 ACPI 扩展

值 0:指定 _PRW 时无可唤醒的中断,并且至少有一个 GPIO 中断 值 1:由于存在可唤醒的中断,_PRW 应指定 0xffffffff 的 GpeInfo 值

0

不支持使用 GPE 和 GPIO 中断的设备。

0x1000E

验证函数返回的状态。

指向 ACPI 命名空间路径 UNICODE_STRING 的指针。

指向与 SDEV 进行比较的资源列表的指针。

安全设备的 SDEV 资源与其相应的 _CRS 或 _PRS 条目不匹配。

如果出现其他故障或不兼容,则使用以下参数。

参数 1 参数 2 参数 3 参数 4 原因

0x20000

固定表中的 I/O 端口

0

0

固定 ACPI 说明表中的 PM_TMR_BLK 条目未指向工作 ACPI 计时器块。

该表介绍了使用以下参数时的内存使用问题。

参数 1 参数 2 参数 3 参数 4 原因

0x1000

内存区域物理地址的高位部分。

内存区域物理地址的低位部分。

被映射的内存长度。

ACPI 在处理内存操作区域时出现严重错误。 内存操作区域尝试映射分配给操作系统使用的内存。

如果参数 1 等于 0x02,ACPI BIOS 无法处理 PCI 根总线的资源列表。 在这种情况下,参数 3 指定确切的问题,其余参数的定义如下。

参数 2 参数 3 参数 4 原因

PCI 总线的 ACPI 扩展

0x0

指向 QUERY_RESOURCES IRP 的指针

ACPI 无法将 BIOS 的资源列表转换为正确的格式。 这可能表示 BIOS 列表编码过程中出现错误。

PCI 总线的 ACPI 扩展

0x1

指向 QUERY_RESOURCE_REQUIREMENTS IRP 的指针

ACPI 无法将 BIOS 的资源列表转换为正确的格式。 这可能表示 BIOS 列表编码过程中出现错误。

PCI 总线的 ACPI 扩展

0x2

0

ACPI 发现一个空的资源列表。

PCI 总线的 ACPI 扩展

0x3

指向 PNP CRS 描述符的指针

ACPI 在 CRS 中找不到当前总线编号。

PCI 总线的 ACPI 扩展

指向 PCI 资源列表的指针

指向 E820 内存表的指针

PCI 声明解码的资源列表与 E820 BIOS 接口报告的内存区域列表重叠。 (这种冲突是绝不允许的。)

如果参数 1 等于 0x10,ACPI BIOS 无法正确确定系统到设备状态的映射。 在这种情况下,参数 3 指定确切的问题,其余参数的定义如下。

参数 2 参数 3 参数 4 原因

需要映射的 ACPI 扩展

0x0

DEVICE_POWER_STATE(这是“x+1”)

_PRx 已映射回不支持的 S 状态。

需要映射的 ACPI 扩展

0x1

无法映射的 SYSTEM_POWER_STATE

ACPI 找不到要与 S 状态相关的 D 状态。

需要映射的 ACPI 扩展

0x2

无法映射的 SYSTEM_POWER_STATE

设备声称能够在系统处于此 S 状态时唤醒系统,但实际上系统不支持此 S 状态。

如果参数 1 等于 0x11,则系统无法进入 ACPI 模式。 在这种情况下,参数 2 指定确切的问题,其余参数的定义如下。

参数 2 参数 3 参数 4 原因

0x0

0

0

系统无法初始化 AML 解释器。

0x1

0

0

系统找不到 RSDT。

0x2

0

0

系统无法分配关键驱动程序结构。

0x3

0

0

系统无法装载 RSDT。

0x4

0

0

系统无法装载 DDBs。

0x5

0

0

系统无法连接中断向量。

0x6

0

0

在 PM1 控制寄存器中,SCI_EN 永远不会被设置。

0x7

指向具有错误校验和的表的指针

Creator 修订

表校验和不正确。

0x8

指向 ACPI 无法加载的表的指针

Creator 修订

ACPI 无法加载 DDB。

0x9

FADT 版本

0

不受支持的固件版本。

0xA

0

0

系统找不到 MADT。

0xB

0

0

系统在 MADT 中找不到任何有效的本地 SAPIC 结构。

原因

参数 1 的值表示出现错误。

解决方法

如果要调试此错误,请使用 !analyze -v 扩展。 此扩展显示所有相关数据(设备扩展、nsobjects 或任何适合特定错误的内容)。

如果未执行调试,则此错误表示必须获取新的 BIOS。 请联系供应商或访问 Internet 获取新的 BIOS。

如果无法获取更新的 BIOS,或者最新的 BIOS 仍不符合 ACPI 标准,则可以在文本模式设置期间关闭 ACPI 模式。 若要关闭 ACPI 模式,请在系统提示安装存储驱动程序时按 F7 键。 系统不会通知您 F7 键已按下,但它以无提示方式禁用 ACPI 并允许您继续安装。

注解

PCI 路由表 (_PRT) 是 ACPI BIOS 对象,用于指定如何将所有 PCI 设备连接到中断控制器。 具有多个 PCI 总线的计算机可能有多个 _PRTs。

使用 !acpikd.nsobj 扩展并将 _PRT 对象的地址作为其参数,可以在调试器中显示 _PRT 对象。

另请参阅

Bug 检查代码参考