Suporte a ajustes de brilho para conectores de exibição externos

Alguns sistemas OEM têm monitores internos que são conectados usando conectores externos, como HDMI. Para essas configurações, o Windows tem a capacidade de designar exatamente um painel de exibição para suportar o controle de brilho do software do sistema.

Esse recurso só permite que os OEMs indiquem ao Windows que uma tela de conector externo suporta controle de brilho. Os OEMs ainda devem implementar o controlo de brilho do hardware e integrá-lo com o driver gráfico tal como fariam para um ecrã com conector integrado . Este recurso também não suporta a capacidade de controlar o brilho individual do painel em vários painéis de exibição.

Para obter informações sobre o suporte de controle de brilho para painéis de exibição integrados, consulte Suporte a controles de brilho em painéis de exibição integrados.

Requisitos gerais

Utilize o valor DWORD do registo «BrightnessControl». O caminho do Registo é HKLM\SYSTEM\CurrentControlSet\Control\Class{4D36E96E-E325-11CE-BFC1-08002BE10318}\XXXX, onde XXXX é para o monitor individual de destino. A figura a seguir mostra o layout para esse valor.

Diagrama mostrando o layout de bits do valor do Registro de Controle de Brilho.

  • O primeiro bit neste valor do Registro define o suporte ao controle de brilho do monitor não interno.
  • O segundo bit define uma sobreposição ACPI que força a utilização do brilho ACPI.
  • Os 30 bits restantes são reservados e devem ser zero.

Os OEMs que desejam habilitar o controle de brilho em um painel não interno devem enviar seu próprio monitor.inf (consulte o exemplo inf neste artigo) e definir esse valor do Registro adequadamente.

Os OEMs só devem definir o valor do Registro "BrightnessControl" quando necessário.

A substituição do controlo de suporte de brilho (o primeiro bit) só deve ser usada num sistema que não possua um monitor interno ligado a um tipo de conector interno em qualquer adaptador de vídeo. Se um sistema tiver um monitor interno em um tipo de conector interno, o primeiro monitor enumerado receberá o controle de brilho.

Substituição de brilho ACPI

A substituição de brilho ACPI não é o mecanismo preferido para o controlo de brilho, mas está incluída por motivos de completude, em situações onde não há outra opção para o controlo de brilho.

A substituição ACPI (o segundo bit) é válida em monitores internos e externos, mas só deve ser aplicada a exatamente um monitor no sistema.

A substituição ACPI destina-se a ser usada com a substituição de destino de brilho e somente quando o driver de vídeo ainda não fornece suporte a brilho. Isso permite que os OEMs implementem seu próprio controle de luz de fundo de exibição via ACPI.

Um uso secundário para a substituição de ACPI é durante o desenvolvimento do sistema operativo/driver, quando o suporte para brilho falha em sistemas móveis, o que pode acontecer por várias razões comuns. Neste caso, a substituição da ACPI destina-se apenas a ser uma solução provisória; O controlo do brilho do condutor deve ser utilizado para o produto acabado.

No caso em que esse valor do Registro é definido para conectores externos, o sistema operacional limita o sistema a um controle de brilho exposto.

Exemplo de fragmento do ficheiro MONITOR.INF

O seguinte exemplo incompleto de INF descreve as informações anteriores:

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

Observação

Os OEMs precisam fornecer um arquivo monitor.inf que tenha a ID de hardware adequada para garantir que o Microsoft monitor.inf genérico não seja usado.