통합 디스플레이 패널에서 밝기 컨트롤 지원

밝기 컨트롤은 운영 체제에서 제공하는 모니터 드라이버 Monitor.sys 구현됩니다. 모니터 드라이버는 WMI(Windows Management Instrumentation) 인터페이스를 구현하여 애플리케이션(예: 운영 체제의 밝기 슬라이더)이 밝기 수준과 상호 작용할 수 있도록 합니다. 모니터 드라이버는 DPPE(디바이스 전원 정책 엔진)에 등록되어 밝기 수준이 전원 정책의 변경에 응답하도록 합니다. 모니터 드라이버는 ACPI 기반 밝기 바로 가기 키를 처리하기 위해 ACPI(고급 구성 및 전원 인터페이스)에 등록합니다. Windows 2000 디스플레이 드라이버 모델과의 호환성을 위해 모니터 드라이버는 IOCTL 기반 밝기 컨트롤을 구현합니다.

시스템 기본 BIOS(입력/출력 시스템)에 의해 노출되는 디스플레이 미니포트 드라이버 또는 ACPI 메서드는 통합 디스플레이 패널의 밝기 변경을 지원할 수 있습니다. 컴퓨터(D3DKMDT_VOT_INTERNAL 내부적으로 연결하는 출력 기술이 있는 것으로 표시된 첫 번째 비디오 대상의 경우 모니터 드라이버는 디스플레이 미니포트 드라이버의 DxgkDdiQueryInterface 함수를 호출하여 다음 두 가지 모두를 쿼리합니다.

디스플레이 미니포트 드라이버가 적어도 밝기 제어 인터페이스를 지원하지 않는 경우 모니터 드라이버는 ACPI를 사용하여 자식 디바이스의 _BCL, _BCM 및 _BQC 메서드를 쿼리합니다. 이러한 방법에 대한 자세한 내용은 ACPI 웹 사이트의 ACPI 사양을 참조하세요.

참고

WDDM(Windows 디스플레이 드라이버 모델)에서 ACPI 식별자는 통합 디스플레이 패널을 식별하는 데 사용되지 않습니다. 이는 0x0110 식별자가 있는 디스플레이 패널만 지원하는 Windows 2000 디스플레이 드라이버 모델과 다릅니다.

디스플레이 미니포트 드라이버 또는 BIOS 노출 ACPI 메서드가 밝기 컨트롤을 지원하는 경우 모니터 드라이버는 밝기 바로 가기 키의 ACPI 알림을 등록합니다. 모니터 드라이버에 바로 가기 키 알림에 대해 알리는 대체 메커니즘이 없습니다. 모니터 드라이버가 밝기 제어 메커니즘을 사용할 수 없거나 디스플레이 미니포트 드라이버가 밝기 제어 인터페이스를 제공하지만 DxgkDdiGetPossibleBrightness 함수를 호출하지 못하는 경우 모니터 드라이버는 밝기 컨트롤을 지원하지 않습니다.

밝기 수준

밝기 수준은 0부터 100까지의 범위에서 싱글 바이트 값으로 표현됩니다. 여기서 0은 꺼져 있고 100은 랩톱 컴퓨터에서 지원하는 최대 밝기입니다. 모든 노트북 컴퓨터는 최대 밝기 수준 100을 보고해야 합니다. 그러나 랩톱 컴퓨터는 0 수준을 지원할 필요가 없습니다. 0에서 100까지의 값에 대한 유일한 요구 사항은 큰 값이 더 높은 밝기 수준을 나타내야 한다는 것입니다. 수준 간 증가는 균일할 필요가 없으며 랩톱 컴퓨터는 최대 101개 수준까지 고유 값의 수를 지원할 수 있습니다. 하드웨어 수준을 밝기 수준 값 범위에 매핑하는 방법을 결정해야 합니다. 그러나 디스플레이 미니포트 드라이버의 DxgkDdiGetPossibleBrightness 함수에 대한 호출은 하드웨어에서 지원하는 것보다 더 밝기 수준 값을 보고해서는 안 됩니다.

BIOS에 의한 자동 밝기 변경 사용 안 함으로 설정

시스템 BIOS와 모니터 드라이버가 모두 디스플레이 패널 밝기를 제어하는 경우 발생할 수 있는 문제를 방지하려면 디스플레이 미니포트 드라이버는 인수의 비트 2를 _DOS 메서드로 설정해야 합니다. _DOS 메서드 및 인수에 대한 자세한 내용은 ACPI 사양을 참조하세요. 비트 2를 설정하면 시스템 BIOS에서 자동 밝기 변경을 수행해서는 안 된다는 알림이 표시됩니다.

밝기 컨트롤을 지원하기 위한 BIOS 요구 사항

디스플레이 미니포트 드라이버가 최적의 방식으로 통합 패널 밝기 제어를 지원하려면 시스템 BIOS가 ACPI를 통해 다음 항목을 제공해야 합니다.

밝기 제어 메서드

통합 패널 디바이스는 ACPI 밝기 제어 메서드(_BCL, _BCM 및 _BQC)를 지원해야 합니다. _BCL 및 _BCM ACPI 사양의 버전 1.0b 이후 변경되지 않습니다. ACPI 3.0 사양의 정의는 B.6.2 및 B.6.3 섹션에서 찾을 수 있습니다. _BQC 선택 사항이며 B.6.4 섹션의 ACPI 3.0 사양에 정의되어 있습니다. 밝기 수준에 대한 정의는 밝기 수준을 참조하세요.

다음은 Dispmprt.h에 정의된 ACPI 밝기 제어 메서드의 별칭입니다.

  • ACPI_METHOD_OUTPUT_BCLÂ - Windows 디스플레이 출력 디바이스에서 지원하는 밝기 수준 목록을 쿼리할 수 있습니다. 이 방법은 통합된 LCD가 있고 밝기 수준을 지원하는 경우에 필요합니다.
  • ACPI_METHOD_OUTPUT_BCMÂ - Windows 디스플레이 출력 디바이스의 밝기 수준을 설정할 수 있습니다. Windows ACPI_METHOD_OUTPUT_BCL 메서드에서 보고한 수준만 설정합니다. ACPI_METHOD_OUTPUT_BCL 메서드가 구현된 경우 ACPI_METHOD_OUTPUT_BCM 메서드가 필요합니다.

자동 시스템 BIOS 밝기 제어를 사용하지 않도록 설정

시스템 BIOS는 자동 시스템 BIOS 밝기 변경을 사용하지 않도록 설정하도록 그래픽 어댑터의 _DOS 메서드에 인수의 비트 2 설정을 지원해야 합니다. 이 비트는 이 메서드의 비트에 대해 이전에 정의된 값에 추가됩니다. 이 비트에 대한 자세한 내용은 ACPI 3.0 사양의 B.4.1 섹션을 참조하세요. 이 비트가 지원되지 않는 경우 모니터 드라이버와 시스템 BIOS는 모두 밝기 수준을 변경할 수 있으며, 이로 인해 밝기가 깜박이고 사용자가 요청한 값이 아닌 값으로 설정될 수 있습니다.

ACPI 자동 밝기 제어 메서드에 대한 다음 별칭은 Dispmprt.h에 정의되어 있습니다.

  • ACPI_METHOD_DISPLAY_DOSÂ - 시스템 BIOS가 활성 디스플레이 출력을 자동으로 전환하거나 LCD의 밝기를 제어할 수 있음을 나타냅니다. 허용되는 매개 변수는 다음과 같습니다.

    • ACPI_ARG_ENABLE_AUTO_LCD_BRIGHTNESS. 전원이 AC에서 DC로 변경되면 시스템 BIOS가 LCD의 밝기 수준을 자동으로 제어해야 한다고 명시합니다.
    • ACPI_ARG_DISABLE_AUTO_LCD_BRIGHTNESS. 전원이 AC에서 DC로 변경되면 시스템 BIOS가 LCD의 밝기 수준을 자동으로 제어해서는 안 된다고 명시합니다.

밝기 바로 가기 키 알림

밝기 바로 가기 키 알림은 그래픽 어댑터가 아닌 통합 디스플레이 패널 디바이스를 대상으로 해야 합니다.

다음 알림은 Dispmprt.h에 정의된 대로 지원됩니다.

  • ACPI_NOTIFY_CYCLE_BRIGHTNESS_HOTKEY - 사용자가 디스플레이 밝기를 순환하기 위해 바로 가기 키를 눌렀습니다.
  • ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY - 사용자가 디스플레이 밝기를 높이기 위해 바로 가기 키를 눌렀습니다.
  • ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY - 사용자가 표시 밝기를 감소하기 위해 바로 가기 키를 눌렀습니다.
  • ACPI_NOTIFY_ZERO_BRIGHTNESS_HOTKEY - 사용자가 표시 밝기를 0으로 줄이기 위해 바로 가기 키를 눌렀습니다.

이러한 바로 가기 키 알림은 ACPI 3.0 사양에 새로 추가되었으며 B.7 섹션에 설명되어 있습니다. 일반적으로 랩톱 컴퓨터는 이러한 바로 가기 키 알림을 모두 지원하지 않습니다.

ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY 및 ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY 알림에 대한 모니터 드라이버의 기본 동작은 사용 가능한 다음 5% 단계 수준에 도달할 때까지 밝기를 이전 밝기 수준보다 5% 이상 증가(또는 감소)하는 것입니다(5, 10, 15, ..., 95, 100). 바로 가기 키를 사용하여 증가 또는 감소하면 다음 예제와 같이 밝기 수준에서 비대칭 패턴을 만들 수 있습니다.

  • 0, 1, 5, 10, ..., 95, 100으로 지정된 밝기 제어 수준을 _BCL 사용 가능

    • ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY 알림을 사용한 결과:
      0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100

    • ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY 알림을 사용한 결과:
      100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0

    • 1, 5, 10, ..., 95, 100으로 지정된 밝기 제어 수준을 _BCL 사용 가능

      • ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY 알림을 사용한 결과:
        1, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100

      • ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY 알림을 사용한 결과:
        100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 1

    후자의 예제에서 1은 사용 가능한 마지막 값이므로 드라이버는 이전 값 5와 다른 5% 단위보다 작더라도 밝기 수준을 1로 설정합니다.

이 기본 모니터 드라이버 동작은 DWORD 값을 변경하여 재정의할 수 있습니다. 다음 레지스트리 키의 MinimumStepPercentage:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\`*Monitor*`\Parameters\

디스플레이 출력 및 ACPI 이벤트 지원