버그 확인 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 표시할 수 있습니다.