Freigeben über


Unterstützung von Helligkeitssteuerelemente in integrierten Anzeigebereichen

In diesem Artikel werden die Mechanismen und Anforderungen für die Unterstützung von Helligkeitssteuerelementen in integrierten Anzeigebereichen beschrieben. Es beschreibt die Zusammenarbeit zwischen dem vom System bereitgestellten Monitortreiber (Monitor.sys), Kernelmodus-Miniporttreibern (KMD) und dem BIOS über ACPI-Methoden. Unabhängig davon, ob kMD oder ACPI, besteht das Ziel darin, sicherzustellen, dass Benutzer die Helligkeit ihrer Anzeige leicht anpassen können, um die Computererfahrung zu verbessern und gleichzeitig den Stromverbrauch zu optimieren.

Unterstützung der Helligkeitssteuerung in Monitor.sys

Helligkeitssteuerelemente werden in Monitor.sys implementiert. Dieser vom System bereitgestellte Monitortreiber bietet folgende Unterstützung:

  • Implementiert eine WMI-Schnittstelle (Windows Management Instrumentation), um Anwendungen (z. B. den Helligkeitsschieberegler des Betriebssystems) die Interaktion mit der Helligkeitsstufe zu ermöglichen.

  • Registriert sich beim Device Power Policy Engine (DPPE), sodass Helligkeitsstufen auf Änderungen der Energierichtlinie reagieren.

  • Registriert sich mit der Advanced Configuration and Power Interface (ACPI), um ACPI-basierte Tastenkombinationen zur Helligkeit zu verarbeiten. Aus Gründen der Kompatibilität mit dem älteren Windows 2000-Anzeigetreibermodell implementiert der Monitortreiber die IOCTL-basierten Helligkeitssteuerelemente.

Entweder der Kernelmodus-Miniporttreiber (KMD) oder die ACPI-Methoden, die vom BIOS verfügbar gemacht werden, können das Ändern der Helligkeit eines integrierten Anzeigebereichs unterstützen. Für das erste Videoziel, das als Ausgabetechnologie gekennzeichnet ist, die intern in einem Computer (D3DKMDT_VOT_INTERNAL) verbunden ist, ruft der Monitortreiber die DxgkDdiQueryInterface-Funktion KMD auf, um beide der folgenden Schnittstellen abzufragen:

Wenn der KMD mindestens die Helligkeitssteuerungsschnittstelle nicht unterstützt, verwendet der Monitortreiber ACPI, um die methoden _BCL, _BCM und _BQC auf dem untergeordneten Gerät abzufragen. Weitere Informationen zu diesen Methoden finden Sie in der ACPI-Spezifikation auf der ACPI-Website.

Hinweis

Im Windows Display Driver Model (WDDM) wird kein ACPI-Bezeichner verwendet, um einen integrierten Anzeigebereich zu identifizieren. Dies unterscheidet sich vom Windows 2000-Anzeigetreibermodell, das nur Anzeigebereiche mit einem Bezeichner von 0x0110 unterstützt.

Wenn die KMD- oder BIOS-verfügbar gemachten ACPI-Methoden Helligkeitssteuerelemente unterstützen, registriert sich der Monitortreiber für ACPI-Benachrichtigungen von Tastenkombinationen für Helligkeitstasten. Es gibt keinen alternativen Mechanismus, um den Monitortreiber über Tastenkombinationsbenachrichtigungen zu signalisieren. Wenn der Monitortreiber keinen Helligkeitssteuerungsmechanismus verwenden kann oder wenn die KMD die Helligkeitssteuerungsschnittstelle bereitstellt, aber einen Aufruf der DxgkDdiGetPossibleBrightness-Funktion fehlschlägt, unterstützt der Monitortreiber keine Helligkeitssteuerelemente.

Helligkeitsstufen

Helligkeitsstufen werden als Einzelbytewerte im Bereich von Null bis 100 dargestellt, wobei Null deaktiviert ist und 100 die maximale Helligkeit darstellt, die ein Laptopcomputer unterstützt. Jeder Laptop-Computer muss eine maximale Helligkeitsstufe von 100 melden; Ein Laptopcomputer ist jedoch nicht erforderlich, um eine Nullstufe zu unterstützen.

Die einzige Anforderung für Werte von Null bis 100 ist, dass größere Werte höhere Helligkeitsstufen darstellen müssen. Die Inkrementierung zwischen Ebenen ist nicht erforderlich, um einheitlich zu sein, und ein Laptopcomputer kann eine beliebige Anzahl unterschiedlicher Werte bis zu maximal 101 Ebenen unterstützen. Sie müssen entscheiden, wie Hardwareebenen dem Bereich der Helligkeitswerte zugeordnet werden. Bei AUfruf der DxgkDdiGetPossibleBrightness-Funktion der KMD sollte jedoch nicht mehr Helligkeitswerte melden, als die Hardware unterstützt.

Deaktivieren der automatischen Helligkeitsänderungen durch das BIOS

Der KMD sollte Bit 2 des Arguments auf die _DOS-Methode festlegen. Wenn Sie dieses Bit festlegen, werden Probleme vermieden, die auftreten können, wenn das System-BIOS und der Monitortreiber beide Helligkeit der Systemsteuerung angezeigt werden. Weitere Informationen zur _DOS-Methode und den zugehörigen Argumenten finden Sie in der ACPI-Spezifikation. Durch Festlegen von Bit 2 wird das System-BIOS informiert, dass es keine automatischen Helligkeitsänderungen vornehmen sollte.

BIOS-Anforderungen zur Unterstützung von Helligkeitssteuerelementen

Damit die KMD die integrierte Panelhelligkeit optimal steuern kann, muss das System-BIOS die folgenden Elemente über die ACPI bereitstellen.

Methoden für die Helligkeitssteuerung

Ein integriertes Panelgerät sollte die ACPI-Helligkeitssteuerungsmethoden (_BCL, _BCM und _BQC) unterstützen. _BCL und _BCM sind seit Version 1.0b der ACPI-Spezifikation unverändert; Sie finden ihre Definitionen in der ACPI 3.0-Spezifikation in den Abschnitten B.6.2 und B.6.3. _BQC ist optional und in der ACPI 3.0-Spezifikation im Abschnitt B.6.4 definiert. Definitionen von Helligkeitsstufen finden Sie unter "Helligkeitsstufen".

Im Folgenden sind die Aliase für die ACPI-Helligkeitssteuerungsmethoden aufgeführt, die in Dispmprt.h definiert sind:

  • ACPI_METHOD_OUTPUT_BCL – Ermöglicht Windows, eine Liste der Helligkeitsstufen abzufragen, die von den Anzeigeausgabegeräten unterstützt werden. Diese Methode ist erforderlich, wenn ein integriertes LCD vorhanden ist und Helligkeitsstufen unterstützt.

  • ACPI_METHOD_OUTPUT_BCM – Ermöglicht Windows das Festlegen der Helligkeitsstufe des Anzeigeausgabegeräts. Windows legt nur Ebenen fest, die von der ACPI_METHOD_OUTPUT_BCL-Methode gemeldet werden. Die ACPI_METHOD_OUTPUT_BCM Methode ist erforderlich, wenn die ACPI_METHOD_OUTPUT_BCL-Methode implementiert ist.

Deaktivieren des automatischen System-BIOS-Helligkeitssteuerelements

Das System-BIOS sollte das Festlegen von Bit 2 des Arguments auf die _DOS-Methode auf dem Grafikkarten unterstützen, damit automatische System-BIOS-Helligkeitsänderungen deaktiviert werden können. Dieses Bit ist eine Ergänzung zu den zuvor definierten Werten für die Bits in dieser Methode. Ausführliche Informationen zu diesem Bit finden Sie im Abschnitt B.4.1 in der ACPI 3.0-Spezifikation.

Wenn dieses Bit nicht unterstützt wird, kann der Monitortreiber und das System-BIOS die Helligkeitsstufe ändern, was zu einem Flimmern der Helligkeit führt. Darüber hinaus kann die Helligkeit möglicherweise auf einen Wert festgelegt werden, der nicht vom Benutzer angefordert wurde.

ACPI_METHOD_DISPLAY_DOS, definiert in Dispmprt.h, ist der Alias für die ACPI-Methode für die automatische Helligkeitskontrolle. Dieser Alias gibt an, dass das System-BIOS in der Lage ist, die aktive Anzeigeausgabe automatisch zu wechseln oder die Helligkeit des LCD zu steuern. Sein Parameter kann einen der folgenden Werte aufweisen.

Wert Bedeutung
ACPI_ARG_ENABLE_AUTO_LCD_BRIGHTNESS Das System-BIOS sollte automatisch den Helligkeitsgrad des LCD steuern, wenn sich die Leistung von AC zu DC ändert.
ACPI_ARG_DISABLE_AUTO_LCD_BRIGHTNESS Das System-BIOS sollte nicht automatisch den Helligkeitsgrad des LCD steuern, wenn sich die Leistung von AC zu DC ändert.

Benachrichtigungen über Tastenkombinationen für Helligkeit

Tastenkombinationsbenachrichtigungen für Helligkeit sollten auf das integrierte Anzeigepanelgerät ausgerichtet sein, nicht auf den Grafikkartenadapter.

Die folgenden Benachrichtigungen werden gemäß Definition in Dispmprt.h unterstützt:

Benachrichtigung Bedeutung
ACPI_NOTIFY_CYCLE_BRIGHTNESS_HOTKEY Der Benutzer hat den Hotkey für die Anzeigehelligkeit beim Durchlaufen gedrückt.
ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY Der Benutzer hat den Hotkey zum Erhöhen der Bildschirmhelligkeit gedrückt.
ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY Der Benutzer hat den Hotkey zum Verringern der Bildschirmhelligkeit gedrückt.
ACPI_NOTIFY_ZERO_BRIGHTNESS_HOTKEY Der Benutzer hat den Hotkey gedrückt, um die Anzeigehelligkeit auf Null zu reduzieren.

Diese Tastenkombinationsbenachrichtigungen waren neu bei der ACPI 3.0-Spezifikation und werden in Abschnitt B.7 beschrieben. Normalerweise unterstützt ein Laptopcomputer nicht alle diese Tastenkombinationsbenachrichtigungen.

Zum Erhöhen und Verringern der Helligkeitsstufen lautet das Standardverhalten des Monitortreibers:

  • Für ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY erhöhen Sie die Helligkeit um mindestens fünf Prozent mehr als die vorherige Helligkeitsstufe, bis die nächste verfügbare fünf prozentige Stufenstufe erreicht ist (5, 10, 15, ..., 95, 100).

  • Für ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY erhöhen Sie die Helligkeit um mindestens fünf Prozent mehr als die vorherige Helligkeitsstufe, bis die nächste verfügbare fünf prozentige Stufenstufe erreicht ist (100, 95, 15, ..., 15, 10, 5).

Das Inkrementieren oder Verringern mit Tastenkombinationen kann asymmetrische Muster in Helligkeitsstufen erstellen, wie die folgenden Beispiele zeigen.

  • Verfügbare _BCL Helligkeitssteuerungsebenen, die als 0, 1, 5, 10, ..., 95, 100 angegeben sind

    • Ergebnisse mithilfe der ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY-Benachrichtigung:
      0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100

    • Ergebnisse mithilfe der ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY-Benachrichtigung:
      100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0

  • Verfügbare _BCL Helligkeitssteuerungsebenen, die als 1, 5, 10, ..., 95, 100 angegeben sind

    • Ergebnisse mithilfe der ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY-Benachrichtigung:
      1, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100

    • Ergebnisse mithilfe der ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY-Benachrichtigung:
      100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 1

    Im letzten Beispiel ist 1 der letzte verfügbare Wert, sodass der Treiber die Helligkeitsstufe auf 1 festlegt, obwohl er kleiner als fünf Prozenteinheiten ist, die sich vom vorherigen Wert von 5 unterscheiden.

Ein IHV oder OEM kann das Standardverhalten des Monitortreibers unter Windows Vista und Windows 7 ändern, indem ein DWORD-Wert für MinimumStepPercentage im folgenden Registrierungsschlüssel festgelegt wird:

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

Unterstützen von Anzeigeausgabe- und ACPI-Ereignissen