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 扩展 |
指向 _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 对象。