使用英语阅读

通过


支持外部显示连接器的亮度控件

某些 OEM 系统具有使用外部连接器(如 HDMI)连接的内部显示器。 对于这些配置,Windows 能够指定一个显示面板来支持系统软件亮度控制。

此功能仅允许 OEM 向 Windows 指示外部连接器显示器支持亮度控制。 OEM 仍必须实现硬件亮度控制,并将其与图形驱动程序集成,就像集成 连接器显示器一样。 此功能也不支持控制多个显示面板上的单个面板亮度。

一般要求

使用“BrightnessControl”DWORD 注册表值。 注册表路径为 HKLM\SYSTEM\CurrentControlSet\Control\Class{4D36E96E-E325-11CE-BFC1-08002BE10318}\XXXX,其中 XXXX 用于目标个人显示。 下图显示了此值的布局。

显示亮度控制注册表值的位布局的关系图。

  • 此注册表值中的第一个位定义非内部监视器亮度控制支持。
  • 第二个位定义强制使用 ACPI 亮度的 ACPI 替代。
  • 剩余的 30 位是保留的,必须为零。

想要在非内部面板上启用亮度控制的 OEM 必须交付自己的 monitor.inf (参阅本文中的示例 inf) 并相应地设置此注册表值。

OEM 仅应在需要时定义“BrightnessControl”注册表值。

亮度支持控件替代 (第一位) 应仅在任何显示适配器上的内部连接器类型上没有内部显示器的系统上使用。 如果系统在内部连接器类型上具有内部显示器,则第一个枚举的显示器将接收亮度控件。

ACPI 亮度替代

ACPI 亮度替代不是用于亮度控制的首选机制,但在没有其他亮度控制选项的情况下,为了保证完整性而包括在内。

ACPI 替代 (第二位) 在内部和外部显示器上都有效,但必须仅应用于系统上的一个显示器。

ACPI 替代旨在与亮度目标替代一起使用,并且仅当显示驱动程序尚未提供亮度支持时。 这允许 OEM 通过 ACPI 实现自己的显示背光控制。

当移动系统上的亮度支持失败时,ACPI 替代的次要用途是在 OS/驱动程序开发期间,这可能由于多种常见原因而发生。 在这种情况下,ACPI 替代仅用作临时解决方案;驱动程序亮度控件应用于成品。

如果为外部连接器设置了此注册表值,OS 会将系统限制为一个公开的亮度控件。

示例监视器。INF 文件片段

以下不完整的示例 INF 概述了上述信息:

[Manufacturer]
%MONOEM%=MONOEM,NTx86,NTAMD64

[MONOEM]  
%AIOHDMI_1%  = AIO_HDMI_1, Monitor\OEM1001
%AIOHDMI_2%  = AIO_HDMI_2, Monitor\OEM1002
%Laptop%  = Laptop_1, Monitor\OEM2001

[MONOEM.NTx86]
%AIOHDMI_1%  = AIO_HDMI_1, Monitor\OEM1001
%AIOHDMI_2%  = AIO_HDMI_2, Monitor\OEM1002
%Laptop%  = Laptop_1, Monitor\OEM2001

[MONOEM.NTAMD64]  
%AIOHDMI_1%  = AIO_HDMI_1, Monitor\OEM1001
%AIOHDMI_2%  = AIO_HDMI_2, Monitor\OEM1002
%Laptop%  = Laptop_1, Monitor\OEM2001

[ControlFlags]
ExcludeFromSelect = *

[AIO_HDMI_1]
AddReg= AIO_HDMI_1_Driver_Brightness

[AIO_HDMI_2]
AddReg= AIO_HDMI_2_ACPI_Brightness

[Laptop_1]
AddReg=Laptop_ACPI_Driver_Brightness


; Override brightness to control the HDMI built into the all-in-one system under graphics driver control
[AIO_HDMI_1_Driver_Brightness]
HKR,,BrightnessControl,%REG_DWORD%,%OVERRIDE_BRIGHTNESS_TARGET%

; Override brightness to control the HDMI built into the all-in-one system under ACPI firmware control
[AIO_HDMI_2_ACPI_Brightness]
HKR,,BrightnessControl,%REG_DWORD%,%OVERRIDE_BRIGHTNESS_TARGET_AND_CONTROL_TO_ACPI%

; Override brightness to control the internal panel under ACPI firmware control instead of the driver
[Laptop_ACPI_Driver_Brightness]
HKR,,BrightnessControl,%REG_DWORD%,%OVERRIDE_BRIGHTNESS_CONTROL_TO_ACPI%

[Strings]
; Non-localizable
REG_DWORD = 0x00010001
OVERRIDE_BRIGHTNESS_TARGET = 1
OVERRIDE_BRIGHTNESS_CONTROL_TO_ACPI = 2
OVERRIDE_BRIGHTNESS_TARGET_AND_CONTROL_TO_ACPI = 3

; Localizable
MONOEM = “Manufacturer name”
AIOHDMI_1  = “AIO monitor name one”
AIOHDMI_2  = “AIO monitor name two”
Laptop  = “Laptop monitor name”

备注

OEM 需要提供具有适当硬件 ID 的 monitor.inf 文件,以确保不使用通用 Microsoft monitor.inf。