Ondersteunende helderheidsregelaars op geïntegreerde beeldschermpanelen

In dit artikel worden de mechanismen en vereisten beschreven voor het ondersteunen van helderheidsregelaars op geïntegreerde beeldschermpanelen. Het bevat een overzicht van de samenwerking tussen het door het systeem geleverde monitorstuurprogramma (Monitor.sys), kernelmodus minipoortstuurprogramma's (KMD) en het BIOS via ACPI-methoden. Of het nu gaat om KMD of ACPI, het doel is om ervoor te zorgen dat gebruikers de helderheid van hun beeldscherm eenvoudig kunnen aanpassen, waardoor hun computerervaring wordt verbeterd terwijl het energieverbruik wordt geoptimaliseerd.

Zie Ondersteuning van helderheidsbesturing voor externe beeldschermconnectors voor informatie over de ondersteuning van helderheidsregelaars voor externe beeldschermconnectors.

Ondersteuning voor helderheidsbesturing in Monitor.sys

Helderheidsregelaars worden geïmplementeerd in Monitor.sys. Dit door het systeem geleverde monitorstuurprogramma biedt de volgende ondersteuning:

  • Implementeert een WMI-interface (Windows Management Instrumentation) zodat toepassingen (zoals de schuifregelaar voor helderheid van het besturingssysteem) kunnen communiceren met het helderheidsniveau.

  • Registreert zich bij de Device Power Policy Engine (DPPE), zodat helderheidsniveaus reageren op wijzigingen in het energiebeleid.

  • Registreert zich bij de Advanced Configuration and Power Interface (ACPI) voor het verwerken van op ACPI gebaseerde sneltoetsen voor helderheid. Voor compatibiliteit met het verouderde Windows 2000 Display Driver Model implementeert het monitorstuurprogramma de op IOCTL gebaseerde helderheidsregelaars.

Het minipoortstuurprogramma (KMD) van de kernelmodus of de ACPI-methoden die door het BIOS worden weergegeven, kunnen ondersteuning bieden voor het wijzigen van de helderheid van een geïntegreerd beeldschermpaneel. Voor het eerste videodoel dat is gemarkeerd als uitvoertechnologie die intern verbinding maakt op een computer (D3DKMDT_VOT_INTERNAL), roept het monitorstuurprogramma de functie DxgkDdiQueryInterface van KMD aan om een query uit te voeren op alle volgende interfaces:

Als de KMD de helderheidsbesturingsinterface niet ondersteunt, gebruikt het monitorstuurprogramma ACPI om naar de _BCL, _BCM en _BQC-methoden op het subapparaat te zoeken. Zie de ACPI-specificatie op de ACPI-website voor meer informatie over deze methoden.

Opmerking

In het Windows Display Driver Model (WDDM) wordt geen ACPI-id gebruikt om een geïntegreerd displaypaneel te identificeren. Dit verschilt van het Windows 2000-beeldschermstuurprogrammamodel, dat alleen weergavevensters ondersteunt met een id van 0x0110.

Als de DOOR KMD of BIOS blootgestelde ACPI-methoden helderheidsregelaars ondersteunen, registreert het monitorstuurprogramma zich voor ACPI-meldingen van sneltoetsen voor helderheid. Er bestaat geen alternatief mechanisme om het monitorstuurprogramma te informeren over sneltoetsmeldingen. Als het beeldschermstuurprogramma geen helderheidscontrolemechanisme kan gebruiken of als de KMD de interface voor helderheidsbesturing levert, maar een aanroep naar de functie DxgkDdiGetPossibleBrightness mislukt, biedt het monitorstuurprogramma geen ondersteuning voor helderheidsregelaars.

Helderheidsniveaus

Helderheidsniveaus worden weergegeven als waarden voor één byte in het bereik van nul tot 100, waarbij nul is uitgeschakeld en 100 de maximale helderheid is die een laptopcomputer ondersteunt. Elke laptopcomputer moet een maximum helderheidsniveau van 100 rapporteren; een laptopcomputer is echter niet vereist om een niveau van nul te ondersteunen.

De enige vereiste voor waarden van nul tot 100 is dat grotere waarden hogere helderheidsniveaus moeten vertegenwoordigen. De toename tussen niveaus hoeft niet uniform te zijn en een laptopcomputer kan een willekeurig aantal afzonderlijke waarden tot het maximum van 101 niveaus ondersteunen. U moet bepalen hoe u hardwareniveaus kunt koppelen aan het bereik van helderheidsniveaus. Een aanroep van de FUNCTIE DxgkDdiGetPossibleBrightness van de KMD moet echter geen meer helderheidsniveauwaarden rapporteren dan de hardware ondersteunt.

Automatische helderheidswijzigingen uitschakelen door het BIOS

De KMD moet bit 2 van het argument instellen op de methode _DOS. Als u deze bit instelt, voorkomt u problemen die kunnen optreden als het systeem-BIOS en het beeldschermstuurprogramma zowel de helderheid van het schermpaneel als het beeldscherm controleren. Zie de ACPI-specificatie voor meer informatie over de methode _DOS en de bijbehorende argumenten. Door bit 2 in te stellen, wordt het systeem-BIOS geïnformeerd dat het geen automatische helderheidswijzigingen mag uitvoeren.

BIOS-vereisten ter ondersteuning van helderheidsregelaars

Om de KMD te ondersteunen bij het beheren van geïntegreerde paneelhelderheid op optimale wijze, moet het systeem BIOS de volgende elementen leveren via de ACPI.

Methoden voor helderheidsbeheer

Een geïntegreerd paneelapparaat moet ondersteuning bieden voor de ACPI-besturingsmethoden voor helderheid (_BCL, _BCM en _BQC). _BCL en _BCM zijn ongewijzigd sinds versie 1.0b van de ACPI-specificatie; u kunt hun definities vinden in de ACPI 3.0-specificatie in secties B.6.2 en B.6.3. _BQC is optioneel en is gedefinieerd in de ACPI 3.0-specificatie in sectie B.6.4. Zie Helderheidsniveaus voor definities van helderheidsniveaus.

Hieronder ziet u de aliassen voor de methoden voor de ACPI-helderheidsbesturing die zijn gedefinieerd in Dispmprt.h:

  • ACPI_METHOD_OUTPUT_BCL - Hiermee kan Windows een lijst met helderheidsniveaus opvragen die worden ondersteund door de weergave-uitvoerapparaten. Deze methode is vereist als een geïntegreerde LCD aanwezig is en helderheidsniveaus ondersteunt.

  • ACPI_METHOD_OUTPUT_BCM - Hiermee kan Windows het helderheidsniveau van het beeldschermuitvoerapparaat instellen. In Windows worden alleen niveaus ingesteld die zijn gerapporteerd door de ACPI_METHOD_OUTPUT_BCL methode. De ACPI_METHOD_OUTPUT_BCM methode is vereist als de methode ACPI_METHOD_OUTPUT_BCL is geïmplementeerd.

Het automatische bios-helderheidsbeheer van het systeem uitschakelen

Het systeem-BIOS moet ondersteuning bieden voor het instellen van bit 2 van het argument binnen de _DOS-methode voor de grafische adapter, zodat automatische wijzigingen in de BIOS-lichtsterkte van het systeem kunnen worden uitgeschakeld. Deze bit is een aanvulling op de eerder gedefinieerde waarden voor de bits in deze methode. Zie sectie B.4.1 in de ACPI 3.0-specificatie voor meer informatie over deze bit.

Als deze bit niet wordt ondersteund, kunnen het beeldschermstuurprogramma en het systeem-BIOS het helderheidsniveau wijzigen, wat resulteert in een flikkering van helderheid. Bovendien kan de helderheid mogelijk worden ingesteld op een waarde die niet is wat de gebruiker heeft aangevraagd.

ACPI_METHOD_DISPLAY_DOS, gedefinieerd in Dispmprt.h, is de alias voor de automatische helderheidscontrolemethode ACPI. Deze alias geeft aan dat het systeem-BIOS in staat is om automatisch de actieve beeldschermuitvoer te schakelen of de helderheid van het LCD-scherm te regelen. De parameter kan een van de volgende waarden zijn.

Waarde Meaning
ACPI_ARG_ENABLE_AUTO_LCD_BRIGHTNESS Het systeem-BIOS moet automatisch het helderheidsniveau van het LCD-scherm regelen wanneer de stroom verandert van AC naar DC.
ACPI_ARG_DISABLE_AUTO_LCD_BRIGHTNESS Het systeem-BIOS mag niet automatisch het helderheidsniveau van het LCD-scherm regelen wanneer de stroom verandert van AC naar DC.

Meldingen van sneltoetsen voor helderheid

Meldingen over sneltoetsen voor helderheid moeten worden gericht op het geïntegreerde schermpaneelapparaat, niet op de grafische adapter.

De volgende meldingen worden ondersteund zoals gedefinieerd in Dispmprt.h:

Notification Meaning
ACPI_NOTIFY_CYCLE_BRIGHTNESS_HOTKEY De gebruiker heeft de sneltoets ingedrukt voor de helderheid van het fietsscherm.
ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY De gebruiker heeft op de sneltoets gedrukt om de helderheid van het beeldscherm te vergroten.
ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY De gebruiker heeft de sneltoets ingedrukt om de helderheid van het beeldscherm te verlagen.
ACPI_NOTIFY_ZERO_BRIGHTNESS_HOTKEY De gebruiker heeft de sneltoets ingedrukt om de helderheid van het beeldscherm te verminderen tot nul.

Deze sneltoetsmeldingen waren nieuw voor de ACPI 3.0-specificatie en worden beschreven in sectie B.7. Normaal gesproken ondersteunt een laptopcomputer niet al deze sneltoetsmeldingen.

Voor het verhogen en verlagen van de helderheidsniveaus is het standaardgedrag van het beeldschermstuurprogramma:

  • Voor ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY wordt de helderheid verhoogd met ten minste vijf procent meer dan het vorige helderheidsniveau totdat het volgende stapniveau van vijf procent is bereikt (5, 10, 15, ..., 95, 100).

  • Voor ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY moet de helderheid met ten minste vijf procent verlaagd worden ten opzichte van het vorige helderheidsniveau, totdat het volgende vijftien procentstappenniveau is bereikt (100, 95, ..., 15, 10, 5).

Door met sneltoetsen te verhogen of te verlagen, kunnen asymmetrische patronen in helderheidsniveaus worden gemaakt, zoals in de volgende voorbeelden wordt weergegeven.

  • Beschikbare _BCL helderheidscontroleniveaus opgegeven als 0, 1, 5, 10, ..., 95, 100

    • Resultaten met behulp van de melding 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

    • Resultaten met de notificatie 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

  • Beschikbare _BCL helderheidscontroleniveaus opgegeven als 1, 5, 10, ..., 95, 100

    • Resultaten van het ontvangen van de notificatie 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

    • Resultaten met de notificatie 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

    In het laatste voorbeeld is 1 de laatst beschikbare waarde, dus het stuurprogramma stelt het helderheidsniveau in op 1, ook al is het minder dan vijf procent anders dan de vorige waarde van 5.

Een IHV of OEM kan het standaardgedrag van het monitorstuurprogramma op Windows Vista en Windows 7 wijzigen door een DWORD-waarde in te stellen voor MinimumStepPercentage in de volgende registersleutel:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\monitor\Parameters\

Ondersteuning van beelduitvoer en ACPI-gebeurtenissen