다음을 통해 공유


버그 확인 0xA5: ACPI_BIOS_ERROR

ACPI_BIOS_ERROR 버그 검사 값은 0x000000A5. 이 버그 검사 컴퓨터의 ACPI(고급 구성 및 전원 인터페이스) BIOS가 ACPI 사양을 완전히 준수하지 않음을 나타냅니다.

Important

이 문서는 프로그래머를 위한 것입니다. 컴퓨터를 사용하는 동안 파란색 화면 오류 코드를 받은 고객인 경우 파란색 화면 오류 문제 해결을 참조하세요.

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는 Dock 지원에 결함이 있거나 부족한 정보를 제공합니다.

0x0D

ACPI에 개체가 필요한 ACPI 확장

ACPI에서 찾은 메서드의 (ULONG) 이름

0: 기본 사례

1: 충돌

ACPI가 네임스페이스에서 필요한 메서드 또는 개체를 찾을 수 없습니다. _HID 없거나 _ADR 없는 경우 이 버그 검사 코드가 사용됩니다.

0x0E

ACPI에 개체가 필요한 NS PowerResource

ACPI에서 찾은 메서드의 (ULONG) 이름

0: 기본 사례

ACPI는 전원 리소스(또는 "디바이스" 이외의 엔터티)에 대한 네임스페이스에서 필요한 메서드 또는 개체를 찾을 수 없습니다. 이 버그 검사 코드는 전원 리소스에 대한 _ON, _OFF 또는 _STA 없는 경우에 사용됩니다.

0x0F

ACPI가 구문 분석 중인 현재 버퍼

버퍼의 태그

버퍼의 지정된 길이

ACPI에서 리소스 설명자를 구문 분석할 수 없습니다.

0x10

(이 페이지의 뒷부분에서 표를 참조하세요.)

0x11

(이 페이지의 뒷부분에서 표를 참조하세요.)

0x14

ACPI가 구문 분석 중인 현재 버퍼

버퍼의 태그

버퍼의 ULONGLONG 길이를 포함하는 변수에 대한 포인터입니다.

ACPI에서 리소스 설명자를 구문 분석할 수 없습니다. 길이가 MAXULONG을 초과합니다.

0x15

AML(ACPI Machine Language) 컨텍스트

1: 테이블을 로드하지 못했습니다.

2: 매개 변수 경로 문자열 개체를 찾을 수 없습니다.

3: ParameterPath 문자열 개체에 매개 변수 데이터를 삽입하지 못했습니다.

4: 시스템 메모리 부족

NT 상태 코드

ACPI는 테이블을 로드하려고 할 때 심각한 오류가 발생했습니다.

0x16

부모 NSOBJ에 대한 포인터

잘못된 자식 ACPI 네임스페이스 개체에 대한 포인터

예약됨

ACPI는 xSDT를 처리할 때 심각한 오류가 발생했습니다. 개체가 자식을 가질 수 없는 부모의 자식으로 선언되었습니다.

인터럽트 라우팅 실패 또는 비호환성이 발생한 경우 다음 매개 변수가 사용됩니다.

매개 변수 1입니다. 매개 변수 2 매개 변수 3 매개 변수 4 원인

0x2001

InterruptModel (정수)

인터프리터의 반환 값입니다.

PIC 컨트롤 메서드에 대한 포인터

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는 다음과 같이 인코딩됩니다. 비트 15:0은 PCI 함수 번호이고 비트 31:16은 PCI 디바이스 번호입니다.

ACPI는 함수 ID가 F의 모든 항목이 아니라는 _PRT 항목을 발견했습니다.

(_PRT 항목의 제네릭 형식은 디바이스 번호가 지정되었지만 함수 번호는 지정되지 않는다는 것입니다.)

0x10006

링크 노드에 대한 포인터입니다.

(이 디바이스에 _DIS 메서드가 없습니다.)

0

0

ACPI에서 링크 노드를 찾았지만 노드를 사용하지 않도록 설정할 수는 없습니다.

다시 프로그래밍할 수 있도록 링크 노드를 사용하지 않도록 설정해야 합니다.

0x10007

찾을 수 없는 벡터

0

0

_PRT I/O APIC 항목의 MAPIC 테이블에 설명되지 않은 벡터에 대한 참조를 포함했습니다.

0x10008

잘못된 인터럽트 수준입니다.

0

0

ACPI SCI 인터럽트 수준이 잘못되었습니다.

0x10009

0

0

0

FADT(고정 ACPI 설명 테이블)를 찾지 못했습니다.

0x1000A

0

0

0

RSDP(루트 시스템 설명 포인터) 또는 XSDT(확장 시스템 설명 테이블)를 찾지 못했습니다.

0x1000B

ACPI 테이블 서명

ACPI 테이블에 대한 포인터

0

ACPI 테이블의 길이가 테이블 수정 버전과 일치하지 않습니다.

0x1000C

수정 ID

함수 인덱스

0

잘못된 형식의 데이터를 반환하는 인터럽트 메서드를 _DSM.

0x1000D

디바이스에 대한 ACPI 확장

값 0: 절전 모드 해제 가능 인터럽트 및 하나 이상의 GPIO 인터럽트 값 1 없이 지정된 _PRW: 절전 모드 해제 가능 인터럽트는 있으므로 _PRW gpeInfo 값을 0xffffffff

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에 심각한 오류가 발생했습니다. 메모리 작업 영역에서 OS 사용에 할당된 메모리를 매핑하려고 했습니다.

매개 변수 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

시스템에서 DDB를 로드할 수 없습니다.

0x5

0

0

시스템에서 인터럽트 벡터를 연결할 수 없습니다.

0x6

0

0

SCI_EN PM1 컨트롤 레지스터에서 설정되지 않습니다.

0x7

잘못된 검사sum이 있는 테이블에 대한 포인터입니다.

작성자 수정

테이블 검사sum이 잘못되었습니다.

0x8

ACPI를 로드하지 못한 테이블에 대한 포인터

작성자 수정

ACPI가 DDB를 로드하지 못했습니다.

0x9

FADT 버전

0

지원되지 않는 펌웨어 버전입니다.

0xA

0

0

시스템에서 MADT를 찾을 수 없습니다.

0xB

0

0

시스템에서 MADT에서 유효한 로컬 SAPIC 구조를 찾을 수 없습니다.

원인

매개 변수 1의 값은 오류를 나타냅니다.

해결

이 오류를 디버깅하는 경우 !analyze -v 확장을 사용합니다. 이 확장은 모든 관련 데이터(디바이스 확장, nsobjects 또는 특정 오류에 적합한 모든 데이터)를 표시합니다.

디버깅을 수행하지 않는 경우 이 오류는 새 BIOS를 가져와야 했음을 나타냅니다. 새로운 BIOS를 얻으려면 공급업체에 문의하거나 인터넷을 방문하세요.

업데이트된 BIOS를 가져올 수 없거나 최신 BIOS가 여전히 ACPI 규격이 아닌 경우 텍스트 모드를 설정하는 동안 ACPI 모드를 해제할 수 있습니다. ACPI 모드를 해제하려면 스토리지 드라이버를 설치하라는 메시지가 표시되면 F7 키를 누릅니다. 시스템은 F7 키를 눌렀다는 사실을 알리지 않지만 ACPI를 자동으로 사용하지 않도록 설정하여 설치를 계속할 수 있습니다.

설명

PCI 라우팅 테이블(_PRT)은 모든 PCI 디바이스가 인터럽트 컨트롤러에 연결되는 방법을 지정하는 ACPI BIOS 개체입니다. PCI 버스가 여러 대 있는 컴퓨터에는 여러 _PRTs 있을 수 있습니다.

!acpikd.nsobj 확장과 _PRT 개체의 주소를 인수로 사용하여 디버거에 _PRT 표시할 수 있습니다.

참고 항목

오류 검사 코드 참조