次の方法で共有


統合ディスプレイ パネルでの明るさ制御のサポート

明るさ制御は、システム提供のモニター ドライバー (Monitor.sys) に実装されています。 Windows Vista および Windows 7 では、モニター ドライバーは次のようになります。

  • Windows Management Instrumentation (WMI) インターフェイスを実装して、アプリケーション (オペレーティング システムの明るさスライダーなど) が明るさレベルと対話できるようにします。
  • 明るさレベルが電源ポリシーの変更に対応できるように、デバイス電源ポリシー エンジン (DPPE) に登録します。
  • ACPI ベースの明るさショートカット キーを処理するために、詳細構成および電源インターフェイス (ACPI) に登録します。 Windows 2000 ディスプレイ ドライバー モデルとの互換性のために、モニター ドライバーは IOCTL ベースの明るさ制御を実装します。

ディスプレイ ミニポート ドライバーまたはシステムの基本的な入出力システム (BIOS) によって公開される ACPI メソッドは、統合ディスプレイ パネルの明るさの変更をサポートできます。 コンピューター (D3DKMDT_VOT_INTERNAL) で内部的に接続する出力テクノロジがあるとマークされている最初のビデオ ターゲットの場合、モニター ドライバーはディスプレイ ミニポート ドライバーの DxgkDdiQueryInterface 関数を呼び出して、次の両方を照会します。

ディスプレイ ミニポート ドライバーが少なくとも明るさ制御インターフェイスをサポートしていない場合、モニター ドライバーは ACPI を使用して、子デバイスの _BCL、_BCM および _BQCメソッド を照会します。 これらのメソッドの詳細については、ACPI Web サイトにあるACPIの仕様を参照してください。

Note

Windows Display Driver Model (WDDM) では、ACPI 識別子は統合ディスプレイ パネルを識別するために使用されません。 これは、0x0110 の識別子を持つディスプレイ パネルのみをサポートする Windows 2000 Display Driver Model とは異なります。

ディスプレイ ミニポート ドライバーまたは BIOS で公開されている ACPI メソッドのいずれかが明るさ制御をサポートしている場合、モニター ドライバーは、明るさのショートカット キーの ACPI 通知を登録します。 ショートカット キーの通知についてモニター ドライバーに通知する代替メカニズムは存在しません。 モニター ドライバーが明るさ制御メカニズムを使用できない場合、またはディスプレイ ミニポート ドライバーが明るさ制御インターフェイスを提供するものの、DxgkDdiGetPossibleBrightness 関数の呼び出しに失敗した場合、モニター ドライバーは明るさ制御をサポートしていません。

Brightness Level (明るさのレベル)

明るさレベルは、0 から 100 までの範囲の 1 バイト値として表されます。ゼロはオフで、100 はラップトップ コンピューターでサポートされる最大の明るさです。 すべてのラップトップコンピュータは 100 の最大明るさレベルを報告する必要があります。ただし、ラップトップ コンピューターでは、レベル 0 をサポートする必要はありません。

0 から 100 までの値の唯一の要件は、必ず値が大きいほど明るさレベルが高くなる点です。 レベル間の増分は均一である必要はありません。また、ラップトップ コンピューターでは、最大 101 レベルまでの任意の数の個別の値をサポートできます。 ハードウェア レベルを明るさレベル値の範囲にマップする方法を決定する必要があります。 ただし、ディスプレイ ミニポート ドライバーの DxgkDdiGetPossibleBrightness 関数の呼び出しは、ハードウェアがサポートするよりも高い明るさレベルの値を報告しません。

BIOS による明るさの自動変更を無効にする

システム BIOS とモニター ドライバーが両方のディスプレイ パネルの明るさを制御する場合に発生する可能性がある問題を回避するために、ディスプレイ ミニポート ドライバーは、_DOS メソッドに引数のビット 2 を設定する必要があります。 _DOS メソッドとその引数の詳細については、ACPI の仕様を参照してください。 ビット 2 を設定すると、システム BIOS に、明るさの自動変更を実行しないように通知されます。

明るさ制御をサポートするための BIOS 要件

ディスプレイ ミニポート ドライバーが最適な方法で統合パネルの明るさの制御をサポートするために、システム BIOS は、ACPI を介して次の項目を入力する必要があります。

明るさ制御方法

統合パネル デバイスは、ACPI の明るさ制御方法 (_BCL、_BCM、および_BQC) をサポートする必要があります。 _BCL と _BCM は、ACPI 仕様のバージョン 1.0b 以降変更されません。定義は、セクション B.6.2 および B.6.3 の ACPI 3.0 仕様で確認できます。 _BQC は省略可能で、セクション B.6.4 の ACPI 3.0 仕様で定義されています。 明るさレベルの定義については、「明るさレベル」を参照してください。

Dispmprt.h で定義されている ACPI 明るさ制御メソッドのエイリアスを次に示します。

  • ACPI_METHOD_OUTPUT_BCLÂ - 表示出力デバイスでサポートされている明るさレベルの一覧を Windows が照会できるようにします。 このメソッドは、統合された LCD が存在し、明るさレベルをサポートしている場合に必要です。
  • ACPI_METHOD_OUTPUT_BCMÂ - Windows がディスプレイ出力デバイスの明るさレベルを設定できるようにします。 Windows では、ACPI_METHOD_OUTPUT_BCL メソッドによって報告されたレベルのみが設定されます。 ACPI_METHOD_OUTPUT_BCL メソッドが実装されている場合、ACPI_METHOD_OUTPUT_BCM メソッドが必要です。

自動システム BIOS 明るさ制御を無効にする

システム BIOS では、グラフィックス アダプターの _DOS メソッドへのビット 2 引数の設定をサポートして、システム BIOS の明るさの自動変更を無効にする必要があります。 このビットは、このメソッドのビットに対して以前に定義された値に追加されます。 このビットの詳細については、ACPI 3.0 仕様のセクション B.4.1 を参照してください。

このビットがサポートされていない場合、モニター ドライバーとシステム BIOS の両方で明るさレベルが変更され、明るさがちらつく可能性があります。 さらに、明るさは、ユーザーが要求した値ではない値に設定される可能性があります。

Dispmprt.h で定義されている ACPI_METHOD_DISPLAY_DOS は、ACPI 自動明るさ制御メソッドのエイリアスです。 このエイリアスは、システム BIOS がアクティブなディスプレイ出力を自動的に切り替えるか、LCD の明るさを制御できることを示します。 そのパラメーターには、次の値のいずれかを指定できます。

意味
ACPI_ARG_ENABLE_AUTO_LCD_BRIGHTNESS システム BIOS は、電源が AC から DC に変わるとき、LCD の明るさレベルを自動的に制御する必要があります。
ACPI_ARG_DISABLE_AUTO_LCD_BRIGHTNESS システム BIOS は、電源が AC から DC に変わるとき、LCD の明るさレベルを自動的に制御することはできません。

明るさの通知ショートカット キー

明るさショートカット キーの通知は、グラフィックス アダプターではなく、統合ディスプレイ パネル デバイスを対象とする必要があります。

Dispmprt.h で定義されているように、次の通知がサポートされています。

通知 意味
ACPI_NOTIFY_CYCLE_BRIGHTNESS_HOTKEY ユーザーは、ディスプレイの明るさを循環するためにホットキーを押しました。
ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY ユーザーは、ディスプレイの明るさを強くするためにホットキーを押しました。
ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY ユーザーは、ディスプレイの明るさを弱くするためにホットキーを押しました。
ACPI_NOTIFY_ZERO_BRIGHTNESS_HOTKEY ユーザーは、ディスプレイの明るさをゼロに減らすためにホットキーを押しました。

これらのショートカット キーの通知は、ACPI 3.0 仕様の新機能で、セクション B.7 で説明されています。 通常、ラップトップ コンピューターでは、これらのショートカット キー通知がすべてサポートされているわけではありません。

ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY 通知と ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY 通知の場合、モニター ドライバーの既定の動作では、次に使用可能な 5% のステップ レベル (5、10、15、 ..., 95, 100) に達するまで、以前の明るさレベルより少なくとも 5% 明るさを高く (または、少なくとも 5% 明るさを低く) します。 ショートカット キーを使用して増やしたり減らしたりすると、次の例に示すように、明るさレベルで非対称パターンを作成できます。

  • 0、1、5、10、..、95、100 として指定される、_BCL 明るさ制御レベルを使用できます。

    • 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

    • 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

  • 1、5、10、..、95、100 として指定される、_BCL 明るさ制御レベルを使用できます。

    • 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

    • 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

    後者の例では、最後に使用可能な値が 1 のため、前の値 5 との違いが 5% 未満であっても、ドライバーは明るさレベルを 1 に設定します。

IHV または OEM は、次のレジストリ キーで MinimumStepPercentage の DWORD 値を設定することで、Windows Vista および Windows 7 の既定のモニター ドライバーの動作を変更できます。

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

ディスプレイ出力および ACPI イベントのサポート