次の方法で共有


IddCx オブジェクト

IddCx (間接ディスプレイ ドライバー クラス eXtension) フレームワークは、拡張可能な UMDF オブジェクト モデルを使用して、間接ディスプレイ デバイスのさまざまなコンポーネントを表します。 UMDF オブジェクト モデルを使用すると、ドライバー固有のストレージを各 IddCx (そのため UMDF) オブジェクトに関連付けられます。 詳細については、「 UMDF オブジェクト モデル」を参照してください。

IDD オブジェクトの作成順序は次のとおりです。

  • ドライバーは、最初に IDDCX_ADAPTER オブジェクトを作成します。
  • その後、ドライバーによって IDDCX_MONITOR オブジェクトが作成されます。
  • IDDCX_ADAPTERオブジェクトとIDDCX_MONITORオブジェクトが作成されると、OS はIDDCX_SWAPCHAINオブジェクトとIDDCX_OPMCTXオブジェクトを作成し、ドライバーに送信します。

次のセクションでは、これらのオブジェクトの詳細について説明します。

IDDCX_ADAPTER

このオブジェクトは、2 段階のプロセスでドライバーによって作成された 1 つの論理表示アダプターを表します。

IDD モデルには、明示的な破棄アダプター コールバックがありません。 アダプターの初期化シーケンスが正常に完了すると、初期化時に渡された UMDF デバイスが停止するまで、アダプターは有効です。 間接ディスプレイ ドライバー (IDD) は、アダプターを作成するときに、間接ディスプレイ アダプターに関する静的アダプター情報を提供します。

多機能デバイスの処理

最も単純なケースでは、接続された間接ディスプレイ デバイスのプラグ アンド プレイ サブシステムによって作成された UMDF デバイス オブジェクトと、IDD によって作成される IDDCX_ADAPTER オブジェクトの間に 1 対 1 のマッピングがあります。

1 つの間接ディスプレイ ドングルに複数のプラグ アンド プレイ デバイスが含まれている場合、より複雑なシナリオが発生する可能性があります。 たとえば、間接表示ソリューションには、マイク (オーディオ ドライバー) やカメラ (ビデオ ドライバー) などの複数の PnP デバイス機能がある場合があります。 このような状況では、IDD は、PnP デバイスごとに作成された複数の UMDF デバイス オブジェクトの 1 つの IDDCX_ADAPTER オブジェクトを作成する役割を担います。 ドライバーは、このシナリオで次の点を考慮する必要があります。

  • IDDCX_ADAPTERは、間接表示ソリューションを構成するすべての PnP デバイスが正常に開始された後にのみ作成する必要があります。
  • ドライバーは、アダプターの作成時に 1 つの WDFDEVICE を渡す必要があります。そのため、渡す UMDF デバイスを決定するロジックが必要です。
  • 間接ディスプレイ アダプターを構成するデバイスにハードウェア エラーがある場合、ドライバーは、アダプターを構成するすべてのデバイスをエラーとして報告する必要があります。

IDDCX_MONITOR

このオブジェクトは、間接ディスプレイ アダプターのコネクタのいずれかに接続されている特定のモニターを表します。

ドライバーは、次の 2 段階のプロセスでモニター オブジェクトを作成します。

  • 最初に IddCxMonitorCreate コールバックを呼び出して 、IDDCX_MONITOR オブジェクトを作成します。
  • 次に、 IddCxMonitorArrival コールバックを呼び出して、モニターの到着を完了します。

モニターが取り外されると、ドライバーは IddCxMonitorDeparture コールバックを呼び出してレポートします。 この呼び出しにより、 IDDCX_MONITOR オブジェクトが破棄されます。 同じモニターが取り外されて再接続された場合でも、 IddCxMonitorDeparture/IddCxMonitorArrival シーケンスを再度呼び出す必要があります。

IDDCX_MONITORは、IDDCX_ADAPTER オブジェクトの子です。

IDDCX_SWAPCHAIN

このオブジェクトは、接続されたモニターに表示するデスクトップ イメージを提供する スワップチェーン を表します。 スワップチェーンには複数のバッファーがあり、IDD が別のバッファーにアクセスしている間に OS が 1 つのバッファー内の次のデスクトップ イメージを構成できるようにします。 IDDCX_SWAPCHAINIDDCX_MONITORの子であるため、特定のモニターに割り当てられたスワップチェーンはいつでも 1 つだけです。

OS は 、IDDCX_SWAPCHAIN オブジェクトを作成して破棄し、 EvtIddCxMonitorAssignSwapChain 呼び出しと EvtIddCxMonitorUnassignSwapChain 呼び出しを使用して、それらをモニターに割り当てる/割り当て解除します。

IDDCX_OPMCTX

このオブジェクトは、アプリケーションが 1 つのモニターで出力保護を制御するために使用できる、単一のアプリケーション OPM コンテキストからのアクティブな Output Protection Manager (OPM) コンテキストを表します。 特定のモニターで複数の OPM コンテキストを同時にアクティブにすることができます。 OS は、ドライバーの EvtIddCxMonitorOPMCreateProtectedOutput および EvtIddCxMonitorOPMDestroyProtectedOutput DDI 呼び出しを使用して、OPM コンテキストを作成および破棄するためにドライバーを呼び出します。