Поделиться через


Использование com-объекта IViewHelper Clone-View

TMM будет использовать методы объекта com-интерфейса IViewHelper поставщика оборудования в представлении клонирования в новых конфигурациях монитора и сохраненных мониторов. В конфигурации сохраняемого монитора TMM восстанавливает данные отображения (то есть режимы отображения и данные топологии) в мониторы. TMM может передавать эти данные отображения в драйвер дисплея пользовательского режима с помощью метода IViewHelper::SetConfiguration , чтобы драйвер может изменять или сворачивать другие данные отображения (например, параметры гамма или телевизора).

Ошибки из сети видеотрансляции (VidPN) возвращаются с помощью методов IViewHelper. Таким образом, если TMM применяет неправильную топологию, VidPN завершается ошибкой и результат сбоя передается обратно вызывающей функции. Примерами неправильной топологии являются сопоставление целевого объекта с двумя источниками или использование целевого объекта или идентификатора источника, которые не удается определить VidPN.

TMM определяет объект COM-интерфейса IViewHelper с помощью значения реестра строки UserModeDriverGUID . Поставщики оборудования должны добавить это значение в разделы реестра, указанные элементом DeviceKey структуры DISPLAY_DEVICE. Вызов функции Win32 EnumDisplayDevices возвращает сведения о разделе реестра в DISPLAY_DEVICE, на которые указывает параметр lpDisplayDevice . Если существует несколько имен DeviceKey , это значение должно отображаться под каждым из этих ключей. Ниже приведен пример ключа устройства и значения реестра строки UserModeDriverGUID .

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

Чтобы COM загружала объект интерфейса COM IViewHelper , объект COM должен быть зарегистрирован как внутрипроцессный (внутрипроцессный) обработчик, а модель потоков должна иметь значение Both. Зарегистрированный GUID должен соответствовать ИДЕНТИФИКАТОРу GUID в UserModeDriverGUID. Дополнительные сведения об атрибуте модели обеих потоков см. в документации по Microsoft Windows SDK.

В системном каталоге следует копировать и регистрировать только правильно скомпилированные версии библиотек DLL объектов интерфейса COM IViewHelper. То есть следует копировать и регистрировать только 64-разрядную библиотеку DLL IViewHelper для 64-разрядных операционных систем и 32-разрядную библиотеку DLL IViewHelper для 32-разрядных операционных систем. Два двоичных файла DLL не должны одновременно присутствовать на одном компьютере. TMM не будет работать должным образом, если два двоичных файла одновременно присутствуют на одном компьютере, даже с Windows в Windows (WOW).