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

Advanced Configuration and Power Interface (ACPI) の仕様に基づいて、システム構成とデバイスの電源制御に対する包括的なアプローチが Windows に組み込まれています。 Windows では、ドライバーがディスプレイ出力デバイスの構成と電源を管理するために使用できる機能がサポートされています。 詳細については、ACPI の Web サイトにある ACPI の仕様を参照してください。

ディスプレイ出力デバイスをサポートするための BIOS 要件

システム BIOS によって公開されているディスプレイ ミニポート ドライバーまたは ACPI メソッドは、ディスプレイ出力デバイスの構成をサポートしています。 DxgkDdiNotifyAcpiEvent 関数は、ACPI イベントについてディスプレイ ミニポート ドライバーに通知するために呼び出されます。 たとえば、ユーザーが出力デバイス切り替えのキーボード ショートカットを押すと、DxgkDdiNotifyAcpiEvent 関数が ACPI_NOTIFY_CYCLE_DISPLAY_HOTKEY 通知と DXGK_ACPI_CHANGE_DISPLAY_MODE の要求の種類とともに呼び出されます。 その結果、オペレーティング システムが DxgkDdiRecommendFunctionalVidPn 関数を呼び出して、選択したディスプレイ出力デバイスに対してクエリを実行します。

ACPI ディスプレイ出力の次のエイリアスは Dispmprt.h で定義されます。

  • ACPI_METHOD_DISPLAY_DOD - ディスプレイ アダプターに接続されているすべてのデバイスを列挙します。 このメソッドは、統合コントローラーが出力デバイスの切り替えをサポートしている場合に必要になります。 これは、ACPI の仕様で定義されている DOD_ メソッドのエイリアス名です。
  • ACPI_METHOD_DISPLAY_DOS - システム ファームウェアがアクティブなディスプレイ出力を自動的に切り替えられることを示します。 これは、ACPI の仕様で定義されている SOD_ メソッドのエイリアス名です。 使用できるパラメーターは次のとおりです。
    • ACPI_ARG_ENABLE_SWITCH_EVENT。 システム ファームウェアがアクティブなディスプレイ出力デバイスを自動的に切り替えてはならないことを示します。 代わりに、各ディスプレイ出力デバイスに関連付けられている状態変数に目的の変更を保存し、ディスプレイ切り替えイベントを生成する必要があります。 オペレーティング システムは、ACPI_METHOD_OUTPUT_DGS メソッドを呼び出してデバイスのアクティブな状態のクエリを実行できます。
    • ACPI_ARG_ENABLE_AUTO_SWITCH。 システム ファームウェアがオペレーティング システムと対話せずに、アクティブなディスプレイ出力デバイスを自動的に切り替える必要があることを示します。 ディスプレイ切り替えイベントは生成されません。
    • ACPI_ARG_DISABLE_SWITCH_EVENT。 システム ファームウェアがアクションを実行しないことを示します。つまり、出力デバイスの切り替えもオペレーティング システムへの通知も行いません。 ACPI_METHOD_OUTPUT_DGS メソッドによって返される値はロックされます。
  • ACPI_METHOD_OUTPUT_DCS - ディスプレイ出力デバイスの状態を返します。 これは、ACPI の仕様で定義されている CSD_ メソッドのエイリアス名です。
  • ACPI_METHOD_OUTPUT_DGS - ディスプレイ出力デバイスの状態がアクティブかどうかを確認します。 これは、ACPI の仕様で定義されている SGD_ メソッドのエイリアス名です。
  • ACPI_METHOD_OUTPUT_DSS - ディスプレイ出力デバイスの状態をアクティブまたは非アクティブに設定します。 これは、ACPI の仕様で定義されている SSD_ メソッドのエイリアス名です。 オペレーティング システムでは、ちらつきを回避するためにこのアクションを管理します。
  • ACPI_METHOD_DISPLAY_GPD - CMOS エントリのクエリを実行して、起動時にポストされるビデオ デバイスを決定します。 これは、ACPI の仕様で定義されている DPG_ メソッドのエイリアス名です。
  • ACPI_METHOD_DISPLAY_SPD - 起動時にポストされるビデオ デバイスを決定する CMOS エントリを更新します。 これは、ACPI の仕様で定義されている DPS_ メソッドのエイリアス名です。
  • ACPI_METHOD_DISPLAY_VPO - 実装されるビデオ オプションを決定します。 これは、ACPI の仕様で定義されている OPV_ メソッドのエイリアス名です。

外部非同期イベント

ディスプレイ出力デバイスに影響を与える外部非同期イベントについて、オペレーティング システムに通知する必要があります。 次の通知と関連する要求の種類は Dispmprt.h で定義され、DxgkDdiNotifyAcpiEvent 関数で使用されます。

  • ACPI_NOTIFY_CYCLE_DISPLAY_HOTKEY - ユーザーがサイクル ディスプレイ キーボード ショートカットを押したことをオペレーティング システムに通知します。
  • ACPI_NOTIFY_NEXT_DISPLAY_HOTKEY - ユーザーが次のディスプレイ キーボード ショートカットを押したことをオペレーティング システムに通知します。
  • ACPI_NOTIFY_PREV_DISPLAY_HOTKEY - ユーザーが前のディスプレイ キーボード ショートカットを押したことをオペレーティング システムに通知します。

上記の通知は、ユーザーがキーボード ショートカットを押したときに発生するイベントの処理によって異なります。

ディスプレイ ミニポート ドライバーがオペレーティング システムに対して実行できる要求の種類を次に示します。

  • DXGK_ACPI_CHANGE_DISPLAY_MODE - 新しく推奨されたアクティブなビデオ提示ネットワーク (VidPN) へのモード変更を開始するよう要求します。
  • DXGK_ACPI_POLL_DISPLAY_CHILDREN - ディスプレイ アダプターの子の接続をポーリングするよう要求します。

上記の要求は、DxgkDdiNotifyAcpiEvent 関数によって返される AcpiFlags パラメーターの値です。

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