디스플레이 출력 및 ACPI 이벤트 지원
시스템 구성 및 디바이스 전원 제어에 대한 포괄적인 접근 방식은 ACPI(고급 구성 및 전원 인터페이스) 사양에 따라 Windows에 기본 제공됩니다. Windows는 드라이버에서 디스플레이 출력 디바이스의 구성 및 기능을 관리하는 데 사용할 수 있는 기능을 지원합니다. 자세한 내용은 ACPI 웹 사이트의 ACPI 사양을 참조하세요.
디스플레이 출력 디바이스를 지원하기 위한 BIOS 요구 사항
시스템 BIOS에서 노출되는 디스플레이 미니포트 드라이버 또는 ACPI 메서드는 디스플레이 출력 디바이스 구성을 지원합니다. DxgkDdiNotifyAcpiEvent 함수는 디스플레이 미니포트 드라이버에 ACPI 이벤트에 대해 알리기 위해 호출됩니다. 예를 들어 사용자가 출력 디바이스 스위치의 바로 가기 키를 누르면 ACPI_NOTIFY_CYCLE_DISPLAY_HOTKEY 알림 및 요청 형식의 DXGK_ACPI_CHANGE_DISPLAY_MODE 사용하여 DxgkDdiNotifyAcpiEvent 함수가 호출됩니다. 결과적으로 운영 체제는 DxgkDdiRecommendFunctionalVidPn 함수를 호출하여 선택한 디스플레이 출력 디바이스를 쿼리합니다.
ACPI 표시 출력에 대한 다음 별칭은 Dispmprt.h에 정의되어 있습니다.
- ACPI_METHOD_DISPLAY_DOD - 디스플레이 어댑터에 연결된 모든 디바이스를 열거합니다. 통합 컨트롤러가 출력 디바이스의 전환을 지원하는 경우 이 메서드가 필요합니다. ACPI 사양에 정의된 DOD_ 메서드의 별칭 이름입니다.
- ACPI_METHOD_DISPLAY_DOS - 시스템 펌웨어가 활성 디스플레이 출력을 자동으로 전환할 수 있음을 나타냅니다. ACPI 사양에 정의된 SOD_ 메서드의 별칭 이름입니다. 허용되는 매개 변수는 다음과 같습니다.
- ACPI_ARG_ENABLE_SWITCH_EVENT. 시스템 펌웨어가 활성 디스플레이 출력 디바이스를 자동으로 전환해서는 안 된다고 명시합니다. 대신 각 디스플레이 출력 디바이스와 연결된 상태 변수의 원하는 변경 사항을 저장하고 디스플레이 스위치 이벤트를 생성해야 합니다. 운영 체제는 ACPI_METHOD_OUTPUT_DGS 메서드를 호출하여 디바이스의 활성 상태 쿼리할 수 있습니다.
- ACPI_ARG_ENABLE_AUTO_SWITCH. 시스템 펌웨어가 운영 체제와 상호 작용하지 않고 활성 디스플레이 출력 디바이스를 자동으로 전환해야 한다고 명시합니다. 디스플레이 스위치 이벤트를 생성하지 않습니다.
- ACPI_ARG_DISABLE_SWITCH_EVENT. 시스템 펌웨어가 어떤 작업도 수행해서는 안 된다고 명시합니다. 즉, 출력 디바이스를 전환하거나 운영 체제에 알리지 않습니다. ACPI_METHOD_OUTPUT_DGS 메서드에서 반환된 값이 잠깁니다.
- ACPI_METHOD_OUTPUT_DCS - 디스플레이 출력 디바이스의 상태 반환합니다. ACPI 사양에 정의된 CSD_ 메서드의 별칭 이름입니다.
- ACPI_METHOD_OUTPUT_DGS - 디스플레이 출력 디바이스의 상태 활성 상태인지 여부를 확인합니다. ACPI 사양에 정의된 SGD_ 메서드의 별칭 이름입니다.
- ACPI_METHOD_OUTPUT_DSS - 디스플레이 출력 디바이스의 상태 활성 또는 비활성으로 설정합니다. ACPI 사양에 정의된 SSD_ 메서드의 별칭 이름입니다. 운영 체제는 깜박임을 방지하기 위해 이 작업을 관리합니다.
- ACPI_METHOD_DISPLAY_GPD - CMOS 항목을 쿼리하여 부팅 시 게시되는 비디오 디바이스를 확인합니다. ACPI 사양에 정의된 DPG_ 메서드의 별칭 이름입니다.
- ACPI_METHOD_DISPLAY_SPD - 부팅 시 게시되는 비디오 디바이스를 결정하는 CMOS 항목을 업데이트. ACPI 사양에 정의된 DPS_ 메서드의 별칭 이름입니다.
- ACPI_METHOD_DISPLAY_VPO - 구현되는 비디오 옵션을 결정합니다. ACPI 사양에 정의된 OPV_ 메서드의 별칭 이름입니다.
외부 비동기 이벤트
운영 체제는 디스플레이 출력 디바이스에 영향을 주는 외부 비동기 이벤트에 대해 알림을 받아야 합니다. 다음 알림 및 관련 요청 형식은 Dispmprt.h에 정의되고 DxgkDdiNotifyAcpiEvent 함수에서 사용됩니다.
- ACPI_NOTIFY_CYCLE_DISPLAY_HOTKEY - 사용자가 주기 표시 바로 가기 키를 눌렀다는 것을 운영 체제에 알 수 있습니다.
- ACPI_NOTIFY_NEXT_DISPLAY_HOTKEY - 운영 체제에 사용자가 다음 표시 바로 가기 키를 누른 것을 알 수 있습니다.
- ACPI_NOTIFY_PREV_DISPLAY_HOTKEY - 운영 체제에 사용자가 이전 표시 바로 가기 키를 누른 것을 알 수 있습니다.
참고 이전 알림은 바로 가기 키를 누를 때 사용자에 의해 발생한 이벤트의 처리에 따라 달라집니다.
다음은 디스플레이 미니포트 드라이버가 운영 체제에 대해 수행할 수 있는 요청 유형입니다.
- DXGK_ACPI_CHANGE_DISPLAY_MODE - 새로운 권장 VidPN(활성 비디오 프레젠테이션 네트워크)에 대한 모드 변경을 시작하도록 요청합니다.
- DXGK_ACPI_POLL_DISPLAY_CHILDREN - 디스플레이 어댑터의 자식 연결을 폴링하도록 요청합니다.
참고 이전 요청은 DxgkDdiNotifyAcpiEvent 함수에서 반환된 AcpiFlags 매개 변수의 값입니다.