モニター クラス ファンクション ドライバー
デバイス ノードは、モニターが接続されているディスプレイ アダプター上の各ビデオ出力を表すために使用されます。 デバイス ノードは、ディスプレイ アダプターのデバイス ノードの子です。
通常、デバイス スタックには、ビデオ出力/モニターのペアを表すデバイス オブジェクトが 2 つだけあります。
- 物理デバイス オブジェクト (PDO)。
- 機能デバイス オブジェクト (FDO)。
場合によっては、ベンダー提供のフィルター ドライバーに関連付けられたフィルター デバイス オブジェクト (DO) が存在します。 このフィルター デバイス オブジェクトは FDO の上にあります。
ノート PC の組み込みフラット パネルなどの統合型モニターの場合、Advanced Configuration and Power Interface (ACPI) ドライバーに関連付けられたフィルター DO が存在する可能性があります。 このフィルター DO は PDO の上にあります。
次の表は、モニターが接続されているビデオ出力のデバイス スタックをまとめたものです。
デバイス オブジェクト | 必須/任意 | Driver |
---|---|---|
フィルター DO | オプション (通常は不要) | モニター ベンダーによって提供されるフィルター ドライバー |
FDO | 必須 | Microsoft が提供するモニター クラス ファンクション ドライバー (Monitor.sys) |
フィルター DO | 統合型 ACPI ディスプレイ パネルのみで必要 | Microsoft が提供する ACPI ドライバー (Acpi.sys) |
PDO | 必須 | ディスプレイ アダプター ベンダーによって提供されるバス ドライバー (ディスプレイ ミニポート/ポート ペア) |
ユーザー モード アプリケーションは、WMI を使用して、モニター クラス ファンクション ドライバーのサービスを呼び出します。 これらのサービスには、モニターの識別データの公開が含まれます。 ACPI ディスプレイの場合、サービスにはディスプレイの明るさの設定が含まれます。
モニターは、その識別情報と機能情報を拡張ディスプレイ識別データ (EDID) 構造体に格納します。 EDID は、モニターとホストの間で使用される通信プロトコルに依存しない ID と機能に関する情報をホストに提供するメタデータ形式です。 FDO は、ユーザーモード アプリケーションからの要求を処理して、そのモニターのデバイス スタックでモニターの EDID を読み取ります。 モニターの EDID を取得する要求を FDO が受信した場合:
- FDO は、モニターのデバイス スタックの下部にある PDO に要求を送信します。
- PDO は、ディスプレイ データ チャネル (DDC) プロトコルを使用して、すべての標準モニター ケーブルに組み込まれた単純な 2 線式バスである I²C バス経由でモニターの EDID を読み取ります。
EDID は、エイリアスが Dispmprt.h で定義されている ACPI_METHOD_OUTPUT_DDC メソッドを使用して取得できます。 このメソッドは、EDID データを返す別の標準メカニズムを持たない統合型 LCD では必須です。
ディスプレイ アダプターとモニター間の通信の詳細については、「I2C バスとディスプレイ アダプターの子デバイス」を参照してください。
EDID 構造と DDC プロトコルの詳細については、ビデオ エレクトロニクス標準協会 (VESA) が公開している以下の標準を参照してください。
Enhanced Display Data Channel Standard (E-DDC)
Enhanced EDID Standard (E-EDID)
これらの標準は、「無料標準」セクションの vesa.org からダウンロードできます。
I²C バスの詳細については、Philips Semiconductors が発行する I²C バス仕様を参照してください。