次の方法で共有


IViewHelper 複製ビュー COM オブジェクトの使用

TMM は、新しいモニターおよび永続化されたモニター構成で、ハードウェア ベンダーのクローン ビュー IViewHelper COM インターフェイス オブジェクトのメソッドを使用します。 永続化されたモニター構成では、TMM はモニターに表示データ (つまり、ディスプレイ モードとトポロジー データ) を復元します。 TMM は、IViewHelper::SetConfiguration メソッドを使用して、この表示データをユーザー モードのディスプレイ ドライバーに渡すことができます。これにより、ドライバーは他の表示データ (ガンマやテレビの設定など) を変更または折りたたみできます。

Video Present Network (VidPN) からのエラーは、IViewHelper のメソッドを介して返されます。 したがって、TMM が不適切なトポロジを適用した場合、VidPN は失敗し、エラーの結果が呼び出し元の関数に返されます。 ターゲットを 2 つのソースにマッピングするか、VidPN で識別できないターゲットまたはソース識別子を使用することは、不適切なトポロジーの例です。

TMM は、UserModeDriverGUID 文字列レジストリ値を使用して IViewHelper COM インターフェイス オブジェクトを決定します。 ハードウェア ベンダーは、DISPLAY_DEVICE構造体の DeviceKey メンバーが指定するレジストリ キーの下にこの値を追加する必要があります。 Win32 EnumDisplayDevices 関数の呼び出しは、lpDisplayDevice パラメーターが 指すDISPLAY_DEVICEでこのレジストリ キー情報を返します。 複数の DeviceKey 名が存在する場合、この値は各キーの下に表示されます。 デバイス キーと UserModeDriverGUID 文字列レジストリ値の例を次に示します。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{7661971C-A9BD-48B5-ACBC-298A8826535D}\0000]
"UserModeDriverGUID"="{YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY}"

COM が IViewHelper COM インターフェイス オブジェクトを読み込むには、COM オブジェクトをインプロセス (インプロセス) ハンドラーとして登録し、スレッド モデルを Both にする必要があります。 登録されている GUID は、UserModeDriverGUID の GUID と一致している必要があります。 両方のスレッド モデル属性の詳細については、Microsoft Windows SDK のドキュメントを参照してください。

正しくコンパイルされたバージョンの IViewHelper COM インターフェイス オブジェクト DLL のみをシステム ディレクトリにコピーして登録する必要があります。 つまり、64 ビット オペレーティング システムの場合は 64 ビット IViewHelper DLL、32 ビット オペレーティング システムの場合は 32 ビット IViewHelper DLL のみをコピーして登録する必要があります。 2 つの DLL バイナリを同じコンピューターに同時に存在させるべきではありません。 Windows 上の Windows (WOW) でも、2 つのバイナリが同じコンピューター上に同時に存在する場合、TMM は正常に動作しません。