Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Диспетчер сети видеоподачи (VidPN) использует объект VidPN для управления информацией о связях между источниками видеоподачи, целевыми объектами видеоподачи и режимами отображения. Дополнительные сведения см. в разделе «Введение в сети для видеопрезентаций».
Объект VidPN
Объект VidPN содержит следующие подобъекты.
Топология
Установка режима источника
Режим цели установлен
Мониторинг набора исходного режима
Настройка диапазона частот монитора
Мониторинг набора дескрипторов
Путь
Исходный материал
Цель
Исходный режим
Целевой режим
Мониторинг исходного режима
На следующей схеме иллюстрируется объект VidPN и его подобъекты.
На предыдущей схеме показано, является ли определенная связь один к одному, один ко многим, многие к одному или многие ко многим. Например, на схеме показано, что источник может принадлежать нескольким путям, но целевой объект может принадлежать только одному пути.
Доступ к синим объектам на схеме осуществляется через дескрипторы и интерфейсы, а к серым объектам — через указатели структуры. Интерфейс в этом контексте — это структура, содержащая указатели функций. Например, структура DXGK_VIDPNTOPOLOGY_INTERFACE содержит указатели на функции (реализованные диспетчером VidPN), которые драйвер мини-порта отображения вызывает для проверки и изменения объекта топологии. Когда драйвер мини-порта дисплея вызывает любую из этих функций, он должен предоставить дескриптор объекту топологии. В следующей таблице перечислены типы данных дескриптора, интерфейса и указателя, используемые для доступа к объекту VidPN и его вложенным объектам.
| Объект | Метод доступа и тип данных |
|---|---|
| VidPN (интерфейс VidPN) | Доступ осуществляется через дескриптор и интерфейс. D3DKMDT_HVIDPN, DXGK_VIDPN_INTERFACE |
| Топология (интерфейс топологии VidPN) | Доступ обеспечивается через хендл и интерфейс. D3DKMDT_HVIDPNTOPOLOGY, DXGK_VIDPNTOPOLOGY_INTERFACE |
| Набор режима источника (интерфейс набора исходного режима VidPN) | Доступ осуществляется через дескриптор и интерфейс. D3DKMDT_HVIDPNSOURCEMODESET, DXGK_VIDPNSOURCEMODESET_INTERFACE |
| Набор целевого режима (интерфейс набора целевых режимов VidPN) | Доступ осуществляется через хэндл и интерфейс. D3DKMDT_HVIDPNTARGETMODESET, DXGK_VIDPNTARGETMODESET_INTERFACE |
| Режим источника монитора установлен | Обеспечивается доступ через дескриптор и интерфейс. D3DKMDT_HMONITORSOURCEMODESET, DXGK_MONITORSOURCEMODESET_INTERFACE |
| Путь | Доступ осуществляется через указатель структуры. D3DKMDT_VIDPN_PRESENT_PATH |
| Исходный материал | Доступ осуществляется через указатель структуры. D3DKMDT_VIDEO_PRESENT_SOURCE |
| Цель | Доступ осуществляется через указатель структуры. D3DKMDT_VIDEO_PRESENT_TARGET |
| Исходный режим | Доступ осуществляется через указатель структуры. D3DKMDT_VIDPN_SOURCE_MODE |
| Целевой режим | Доступ через указатель структуры. D3DKMDT_VIDPN_TARGET_MODE |
| Мониторинг исходного режима | Доступ через указатель структуры. D3DKMDT_MONITOR_SOURCE_MODE |
| Настройка диапазона частот монитора | Доступ через указатель структуры. [DXGK_MONITORFREQUENCYRANGESET_INTERFACE |
| Мониторинг набора дескрипторов | Доступ осуществляется через указатель структуры. [DXGK_MONITORDESCRIPTORSET_INTERFACE |
Диспетчер VidPN
Диспетчер VidPN, который является одним из компонентов подсистемы графического ядра DirectX, взаимодействует с драйвером мини-порта отображения для создания и обслуживания VidPNs. В следующих шагах описывается, как драйвер мини-порта отображения получает дескриптор и интерфейс для объекта VidPN.
Во время инициализации подсистема ядра графики DirectX вызывает функцию DxgkDdiStartDevice драйвера минипорта. Этот вызов предоставляет драйвер мини-порта дисплея со структурой DXGKRNL_INTERFACE , которая содержит указатели на функции, реализованные подсистемой ядра графики DirectX. Одной из этих функций является DxgkCbQueryVidPnInterface.
Когда диспетчеру VidPN требуется помощь драйвера минипорта дисплея, он предоставляет драйверу минипорта дисплея дескриптор к объекту VidPN путем вызова одной из следующих функций:
Драйвер минипорта дисплея передает дескриптор, полученный на шаге 2, в DxgkCbQueryVidPnInterface, который возвращает указатель на структуру DXGK_VIDPN_INTERFACE.
После того как драйвер мини-порта дисплея имеет дескриптор и интерфейс для объекта VidPN, он может получать дескриптора и интерфейсы (по мере необходимости) к основным подобъектам: топологии, набору исходного режима, набору целевых режимов и отслеживать набор исходного режима. Например, драйвер мини-порта отображения может вызывать pfnGetTopology (одну из функций в интерфейсе VidPN), чтобы получить дескриптор объекта топологии VidPN и указатель на структуру DXGK_VIDPNTOPOLOGY_INTERFACE .
Следующие функции (в интерфейсе VidPN) предоставляют дескрипторы и интерфейсы к основным подобъектам объекта VidPN.
Обратите внимание, что две функции в предыдущем списке имеют соответствующие функции, которые освобождают подобъекты VidPN.
После получения дескриптора объекта и интерфейса к одному из основных подобъектов VidPNs драйвер мини-порта может вызывать функции интерфейса для получения дескрипторов объектов, связанных с подобъектом. Например, имея хендл и интерфейс к топологическому объекту, драйвер дисплейного минипорта может предпринять следующие шаги для получения дескрипторов всех путей в топологической структуре.
-
Вызовите функцию pfnAcquireFirstPathInfo интерфейса топологии VidPN, чтобы получить указатель на структуру D3DKMDT_VIDPN_PRESENT_PATH , описывающую первый путь в топологии.
-
Вызовите функцию pfnAcquireNextPathInfo многократно, чтобы получить указатели на D3DKMDT_VIDPN_PRESENT_PATH структуры, описывающие оставшиеся пути в топологии.
Аналогично, драйвер мини-порта может получать дескрипторы режимов в наборе режимов, вызывая функции pfnAcquireFirstModeInfo и pfnAcquireNextModeInfo любого из следующих интерфейсов набора режимов.
Обратите внимание, что интерфейс DXGK_VIDPNSOURCEMODESET_INTERFACE не имеет функции для удаления режима из набора исходных режимов. Если драйвер мини-порта дисплея должен обновить набор исходного режима, он не изменяет существующий режим, добавляя и удаляя режимы. Вместо этого он создает новый набор режимов, который заменяет старый набор режимов. Примером функции, которая должна обновлять наборы режимов, является функция DxgkDdiEnumVidPnCofuncModality драйвера минипорта дисплея. Действия, связанные с обновлением исходного режима, приведены ниже.
Вызовите pfnCreateNewModeInfo интерфейса DXGK_VIDPNSOURCEMODESET_INTERFACE, чтобы получить указатель на структуру D3DKMDT_VIDPN_SOURCE_MODE (выделенную диспетчером VidPN).
Вызовите pfnAddMode многократно, чтобы добавить режимы в набор исходного режима.
Вызовите функцию pfnAssignSourceModeSet из интерфейса DXGK_VIDPN_INTERFACE, чтобы назначить новый набор режимов конкретному источнику видео. Новый набор исходного режима заменяет набор исходного режима, который в настоящее время назначается данному источнику.
Обновление целевого режима аналогично обновлению набора исходного режима. Интерфейс DXGK_VIDPNTARGETMODESET_INTERFACE имеет следующие функции:
Интерфейс набора целевого режима VidPN
Функция pfnCreateNewModeInfo для создания нового набора целевого режима и функции pfnAddMode для добавления режимов в набор.
Отсутствует интерфейс (набор функций) для получения исходного и целевого объекта, принадлежащих конкретному пути. Драйвер минипорта отображения может определить, какой источник и целевой объект принадлежат определенному пути, проверяя элементы VidPnSourceId и VidPnTargetId структуры D3DKMDT_VIDPN_PRESENT_PATH, представляющей путь.
См. также
Определение того, поддерживается ли VidPN на адаптере отображения
Перечисление ко-функциональных режимов источников и целей VidPN