Acpi.sys(Windows ACPI 드라이버)

Windows ACPI 드라이버(Acpi.sys)는 Windows 운영 체제의 받은 편지함 구성 요소입니다. Acpi.sys 책임에는 전원 관리 및 PnP(플러그 앤 플레이) 디바이스 열거형에 대한 지원이 포함됩니다. ACPI BIOS가 있는 하드웨어 플랫폼에서 HAL디바이스 트리의 베이스에서 시스템을 시작하는 동안 Acpi.sys 로드합니다. Acpi.sys 운영 체제와 ACPI BIOS 간의 인터페이스 역할을 합니다. Acpi.sys 디바이스 트리의 다른 드라이버에 투명합니다.

특정 하드웨어 플랫폼에서 Acpi.sys 수행하는 다른 작업에는 COM 포트에 대한 리소스를 다시 프로그래밍하거나 시스템 절전 모드 해제를 위해 USB 컨트롤러를 사용하도록 설정하는 작업이 포함될 수 있습니다.

항목 내용

ACPI 디바이스

하드웨어 플랫폼 공급업체는 플랫폼의 하드웨어 토폴로지를 설명하기 위해 ACPI BIOS에서 ACPI 네임스페이스의 계층 구조를 지정합니다. 자세한 내용은 ACPI 네임스페이스 계층 구조를 참조하세요.

ACPI 네임스페이스 계층 구조에 설명된 각 디바이스에 대해 Windows ACPI 드라이버 Acpi.sys 필터 디바이스 개체(필터 DO) 또는 PDO(물리적 디바이스 개체)를 만듭니다. 디바이스가 시스템 보드에 통합된 경우 Acpi.sys ACPI 버스 필터를 나타내는 필터 디바이스 개체를 만들고 PDO(버스 드라이버) 바로 위의 디바이스 스택에 연결합니다. ACPI 네임스페이스에 설명되어 있지만 시스템 보드에는 없는 다른 디바이스의 경우 Acpi.sys PDO를 만듭니다. Acpi.sys 이러한 디바이스 개체를 사용하여 디바이스 스택에 전원 관리 및 PnP 기능을 제공합니다. 자세한 내용은 ACPI 디바이스에 대한 디바이스 스택을 참조하세요.

Acpi.sys 디바이스 개체를 만드는 디바이스를 ACPI 디바이스라고 합니다. ACPI 디바이스 집합은 하드웨어 플랫폼마다 다르며 ACPI BIOS 및 마더보드 구성에 따라 달라집니다. Acpi.sys ACPI 네임스페이스에 설명되어 있고 하드웨어 플랫폼에 영구적으로 연결된 디바이스에 대해서만 ACPI 버스 필터를 로드합니다(일반적으로 이 디바이스는 코어 실리콘에 통합되거나 시스템 보드에 솔더됩니다). 모든 마더보드 디바이스에 ACPI 버스 필터가 있는 것은 아닙니다.

모든 ACPI 기능은 상위 수준 드라이버에 투명합니다. 이러한 드라이버는 지정된 디바이스 스택에서 ACPI 필터의 존재 또는 부재에 대해 가정하지 않아야 합니다.

Acpi.sys 및 ACPI BIOS는 ACPI 디바이스의 기본 기능을 지원합니다. ACPI 디바이스의 기능을 향상시키기 위해 디바이스 공급업체는 WDM 함수 드라이버를 제공할 수 있습니다. 자세한 내용은 ACPI 디바이스 함수 드라이버 작업을 참조하세요.

ACPI 디바이스는 ACPI BIOS의 시스템 설명 테이블에 있는 정의 블록에 의해 지정됩니다. 디바이스의 정의 블록은 무엇보다도 디바이스 데이터에 액세스하는 데 사용되는 디바이스 메모리의 연속 블록인 작업 영역을 지정합니다. Acpi.sys 작업 영역의 데이터만 수정합니다. 디바이스의 함수 드라이버는 작업 지역의 데이터를 읽을 수 있지만 데이터를 수정해서는 안됩니다. 호출되면 작업 영역 처리기는 작업 영역의 바이트를 Acpi.sys 데이터 버퍼와 전송합니다. 함수 드라이버와 Acpi.sys 결합된 작업은 디바이스별로 관련되며 하드웨어 공급업체가 ACPI BIOS에 정의합니다. 일반적으로 함수 드라이버와 Acpi.sys 작업 영역의 특정 영역에 액세스하여 디바이스별 작업을 수행하고 정보를 검색합니다. 자세한 내용은 작업 영역 지원을 참조하세요.

ACPI 제어 메서드

ACPI 제어 메서드는 ACPI 디바이스를 쿼리하고 구성하는 간단한 작업을 선언하고 정의하는 소프트웨어 개체입니다. 제어 메서드는 ACPI BIOS에 저장되며 AML(ACPI 컴퓨터 언어)이라는 바이트 코드 형식으로 인코딩됩니다. 디바이스에 대한 제어 메서드는 시스템 펌웨어에서 메모리의 디바이스 ACPI 네임스페이스로 로드되고 Windows ACPI 드라이버 Acpi.sys 해석됩니다.

제어 메서드를 호출하기 위해 ACPI 디바이스의 커널 모드 드라이버는 Acpi.sys 처리하는 IRP_MJ_DEVICE_CONTROL 요청을 시작합니다. ACPI 열거형 디바이스에 로드된 드라이버의 경우 Acpi.sys 항상 드라이버 스택에 PDO(물리적 디바이스 개체)를 구현합니다. 자세한 내용은 ACPI 제어 메서드 평가를 참조하세요.

ACPI 사양

고급 구성 및 전원 인터페이스 사양(ACPI 5.0 사양)은 통합 확장 가능한 펌웨어 인터페이스 포럼 웹 사이트에서 사용할 수 있습니다.

ACPI 사양의 수정 버전 5.0에는 SoC(System on Chip) 통합 회로를 기반으로 하고 연결된 대기 전원 모델을 구현하는 저전력 모바일 PC를 지원하는 기능 집합이 도입되었습니다. Windows 8 이상 버전부터 Windows ACPI 드라이버 Acpi.sys ACPI 5.0 사양의 새로운 기능을 지원합니다. 자세한 내용은 SoC 플랫폼에 대한 Windows ACPI 디자인 가이드를 참조하세요.

ACPI 디버깅

시스템 통합자 및 ACPI 디바이스 드라이버 개발자는 Microsoft AMLI 디버거 를 사용하여 AML 코드를 디버그할 수 있습니다. AML은 해석된 언어이므로 AML 디버깅에는 특별한 소프트웨어 도구가 필요합니다.

AMLI 디버거에 대한 자세한 내용은 ACPI 디버깅을 참조하세요.

Microsoft ACPI ASL(원본 언어) 컴파일러

ACPI 원본 언어(ASL)를 AML(ACPI 컴퓨터 언어)로 컴파일하는 방법에 대한 자세한 내용은 Microsoft ASL 컴파일러를 참조하세요.

Microsoft ASL 컴파일러 버전 5.0은 ACPI 5.0 사양의 기능을 지원합니다.

ASL 컴파일러는 WDK(Windows 드라이버 키트)와 함께 배포됩니다.

ASL 컴파일러(asl.exe)는 설치된 WDK의 Tools\arm\ACPIVerify, Tools\arm64\ACPIVerify, Tools\x86\ACPIVerify 및 Tools\x64\ACPIVerify 디렉터리에 있습니다(예: C:\Program Files (x86)\Windows Kits\10\Tools\x86\ACPIVerify).