Compatibilidad con controles de brillo para conectores de pantalla externa

Algunos sistemas OEM tienen pantallas internas que están conectadas mediante conectores externos como HDMI. Para esas configuraciones, Windows tiene la capacidad de designar exactamente un panel de visualización para admitir el control de brillo del software del sistema.

Esta característica solo permite que los OEM indiquen a Windows que una pantalla del conector externo admite el control de brillo. Los OEM deben seguir implementando el control de brillo de hardware e integrarlo con el controlador gráfico como lo harían para una pantalla de conector integrada. Esta característica tampoco admite la capacidad de controlar el brillo del panel individual en varios paneles de pantalla.

Para obtener información sobre la compatibilidad con el control de brillo para los paneles de pantalla integrados, consulte Compatibilidad con controles de brillo en paneles de pantalla integrados.

Requisitos generales

Utilice el valor del registro DWORD "BrightnessControl". La ruta del Registro es HKLM\SYSTEM\CurrentControlSet\Control\Class{4D36E96E-E325-11CE-BFC1-08002BE10318}\XXXX, donde XXXX es para la pantalla individual de destino. En la ilustración siguiente se muestra el diseño de este valor.

Diagrama que muestra el diseño de bits del valor del Registro de control de brillo.

  • El primer bit de este valor del Registro define la compatibilidad con el control de brillo del monitor externo.
  • El segundo bit define una anulación ACPI que fuerza el uso del brillo de ACPI.
  • Los 30 bits restantes están reservados y deben ser cero.

Los OEM que desean habilitar el control de brillo en un panel nointernal deben enviar su propio monitor.inf (consulte el ejemplo inf en este artículo) y establecer este valor del Registro de forma adecuada.

Los OEM solo deben definir el valor del Registro "BrightnessControl" cuando sea necesario.

La invalidación del control de soporte de brillo (el primer bit) solo debe usarse en un sistema que no tenga una pantalla interna conectada a un tipo de conector interno en ningún adaptador de pantalla. Si un sistema tiene una pantalla interna en un tipo de conector interno, la primera pantalla enumerada recibe el control de brillo.

Reemplazo de brillo ACPI

La invalidación de brillo ACPI no es el mecanismo preferido para el control de brillo, pero se incluye por completitud en situaciones donde no hay otra opción para controlarlo.

La anulación ACPI (el segundo bit) es válida tanto en pantallas internas como externas, pero debe aplicarse exactamente a una sola pantalla en el sistema.

La anulación de ACPI está diseñada para usarse junto con la anulación del objetivo de brillo, y solo cuando el controlador de pantalla aún no admite la compatibilidad con el brillo. Esto permite a los OEM implementar su propio control de retroiluminación de pantalla a través de ACPI.

Un uso secundario de la sobrescritura ACPI es durante el desarrollo de sistemas operativos o controladores, cuando falla la compatibilidad de brillo en los sistemas móviles, lo cual puede suceder por varias razones habituales. En este caso, la anulación ACPI solo está pensada como solución temporal; el control de brillo del controlador debe utilizarse para el producto terminado.

En el caso de que este valor del Registro se establezca para conectores externos, el sistema operativo limita el sistema a un control de brillo expuesto.

Fragmento de archivo MONITOR.INF de ejemplo

En el siguiente ejemplo incompleto del archivo INF se resume la información anterior.

[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”

Nota:

Los OEM deben proporcionar un archivo monitor.inf que tenga el identificador de hardware adecuado para asegurarse de que no se use microsoft monitor.inf genérico.