Objetos e interfaces VidPN

O gerenciador VidPN (video present network) usa um objeto VidPN para manter informações sobre associações entre fontes presentes em vídeo, destinos de vídeo presentes e modos de exibição. Para obter mais informações, consulte o tópico Introdução ao Vídeo Apresentar Redes .

Objeto VidPN

Um objeto VidPN contém os subpropósitórios a seguir.

  • Topologia

  • Conjunto de modo de origem

  • Conjunto de modo de destino

  • Monitorar o modo de origem definido

  • Monitorar o conjunto de intervalos de frequência

  • Monitorar conjunto de descritores

  • Caminho

  • Fonte

  • Destino

  • Modo de origem

  • Modo de destino

  • Monitorar o modo de origem

O diagrama a seguir ilustra um objeto VidPN e seus sub-objetos.

Diagrama ilustrando um objeto VidPN e seus vários sub-objetos, incluindo topologia, conjuntos de modos e caminhos.

O diagrama anterior ilustra se uma associação específica é um para um, um para muitos, muitos para um ou muitos para muitos. Por exemplo, o diagrama mostra que uma origem pode pertencer a mais de um caminho, mas um destino pode pertencer a apenas um caminho.

Os objetos azuis no diagrama são acessados por meio de identificadores e interfaces, e os objetos cinza são acessados por meio de ponteiros de estrutura. Uma interface nesse contexto é uma estrutura que contém ponteiros de função. Por exemplo, a estrutura DXGK_VIDPNTOPOLOGY_INTERFACE contém ponteiros para funções (implementadas pelo gerenciador VidPN) que o driver de miniporto de exibição chama para inspecionar e alterar um objeto de topologia. Quando o driver de miniporto de exibição chama qualquer uma dessas funções, ele deve fornecer um identificador para um objeto de topologia. A tabela a seguir lista os tipos de dados de identificador, interface e ponteiro usados para acessar um objeto VidPN e seus sub-objetos.

Objeto Método de acesso e tipo de dados
VidPN (interface VidPN) Acessado por meio de identificador e interface. D3DKMDT_HVIDPN, DXGK_VIDPN_INTERFACE
Topologia (Interface de Topologia VidPN) Acessado por meio de identificador e interface. D3DKMDT_HVIDPNTOPOLOGY, DXGK_VIDPNTOPOLOGY_INTERFACE
Conjunto de modo de origem (interface do conjunto de modo de origem VidPN) Acessado por meio de identificador e interface. D3DKMDT_HVIDPNSOURCEMODESET, DXGK_VIDPNSOURCEMODESET_INTERFACE
Conjunto de modo de destino (interface de conjunto de modo de destino VidPN) Acessado por meio de identificador e interface. D3DKMDT_HVIDPNTARGETMODESET, DXGK_VIDPNTARGETMODESET_INTERFACE
Monitorar o modo de origem definido Acessado por meio de identificador e interface. D3DKMDT_HMONITORSOURCEMODESET, DXGK_MONITORSOURCEMODESET_INTERFACE
Caminho Acessado por meio do ponteiro de estrutura. D3DKMDT_VIDPN_PRESENT_PATH
Source Acessado por meio do ponteiro de estrutura. D3DKMDT_VIDEO_PRESENT_SOURCE
Destino Acessado por meio do ponteiro de estrutura. D3DKMDT_VIDEO_PRESENT_TARGET
Modo de origem Acessado por meio do ponteiro de estrutura. D3DKMDT_VIDPN_SOURCE_MODE
Modo de destino Acessado por meio do ponteiro de estrutura. D3DKMDT_VIDPN_TARGET_MODE
Monitorar o modo de origem Acessado por meio do ponteiro de estrutura. D3DKMDT_MONITOR_SOURCE_MODE
Monitorar o conjunto de intervalos de frequência Acessado por meio do ponteiro de estrutura. [DXGK_MONITORFREQUENCYRANGESET_INTERFACE
Monitorar conjunto de descritores Acessado por meio do ponteiro de estrutura. [DXGK_MONITORDESCRIPTORSET_INTERFACE

VidPN Manager

O gerenciador VidPN, que é um dos componentes do subsistema de kernel de elementos gráficos DirectX, coopera com o driver de miniporto de exibição para criar e manter VidPNs. As etapas a seguir descrevem como o driver de miniporto de exibição obtém um identificador e uma interface para um objeto VidPN.

  1. Durante a inicialização, o subsistema de kernel de elementos gráficos DirectX chama a função DxgkDdiStartDevice do driver de miniporte de exibição. Essa chamada fornece ao driver de miniporto de exibição uma estrutura DXGKRNL_INTERFACE , que contém ponteiros para funções implementadas pelo subsistema de kernel de elementos gráficos DirectX. Uma dessas funções é DxgkCbQueryVidPnInterface.

  2. Em algum momento, o gerenciador VidPN precisa de ajuda do driver de miniporto de exibição, portanto, ele fornece ao driver de miniporto de exibição um identificador para um objeto VidPN chamando uma das seguintes funções:

  3. O driver de miniporto de exibição passa o identificador obtido na Etapa 2 para DxgkCbQueryVidPnInterface, que retorna um ponteiro para uma estrutura DXGK_VIDPN_INTERFACE .

Depois que o driver de miniporto de exibição tiver um identificador e uma interface para um objeto VidPN, ele poderá obter identificadores e interfaces (conforme necessário) para os subpropósios primários: topologia, conjunto de modo de origem, conjunto de modo de destino e conjunto de modo de origem do monitor. Por exemplo, o driver de miniporto de exibição pode chamar pfnGetTopology (uma das funções na interface VidPN) para obter um identificador para um objeto de topologia VidPN e um ponteiro para uma estrutura DXGK_VIDPNTOPOLOGY_INTERFACE .

As funções a seguir (na interface VidPN) fornecem identificadores e interfaces para os sub-objetos primários de um objeto VidPN.

Observe que duas das funções na lista anterior têm funções correspondentes que liberam sub-objetos VidPN.

Depois que o driver de miniporto de exibição obtém um identificador e uma interface para um dos subpropósios primários VidPNs, ele pode chamar as funções de interface para obter descritores de objetos relacionados ao subpropósio. Por exemplo, considerando um identificador e uma interface para um objeto de topologia, o driver de miniporto de exibição pode executar as etapas a seguir para obter descritores de todos os caminhos na topologia.

  1. Interface de topologia VidPN

    Chame a função pfnAcquireFirstPathInfo da interface de topologia VidPN para obter um ponteiro para uma estrutura D3DKMDT_VIDPN_PRESENT_PATH que descreve o primeiro caminho na topologia.

  2. Interface de topologia VidPN

    Chame a função pfnAcquireNextPathInfo repetidamente para obter ponteiros para D3DKMDT_VIDPN_PRESENT_PATH estruturas que descrevem os caminhos restantes na topologia.

Da mesma forma, o driver de miniporto de exibição pode obter descritores dos modos em um modo definido chamando as funções pfnAcquireFirstModeInfo e pfnAcquireNextModeInfo de qualquer uma das interfaces de conjunto de modo a seguir.

Observe que a interface DXGK_VIDPNSOURCEMODESET_INTERFACE não tem função para remover um modo de um conjunto de modo de origem. Quando o driver de miniporto de exibição precisa atualizar um conjunto de modo de origem, ele não altera um modo existente definido adicionando e removendo modos. Em vez disso, ele cria um novo conjunto de modos que substitui o conjunto de modo antigo. Um exemplo de uma função que deve atualizar conjuntos de modo é a função DxgkDdiEnumVidPnCofuncModality do driver de exibição. As etapas envolvidas na atualização de um conjunto de modo de origem são as seguintes:

  1. Chame o pfnCreateNewModeInfo da interface DXGK_VIDPNSOURCEMODESET_INTERFACE para obter um ponteiro para uma estrutura de D3DKMDT_VIDPN_SOURCE_MODE (alocada pelo gerenciador VidPN).

    Chame pfnAddMode repetidamente para adicionar modos ao conjunto de modo de origem.

  2. Chame a função pfnAssignSourceModeSet do DXGK_VIDPN_INTERFACE para atribuir o novo modo definido a uma fonte de vídeo específica presente. O novo conjunto de modo de origem substitui o conjunto de modo de origem atribuído atualmente a essa origem.

Atualizar um conjunto de modo de destino é semelhante à atualização de um conjunto de modo de origem. A interface DXGK_VIDPNTARGETMODESET_INTERFACE tem as seguintes funções:

Não há nenhuma interface (conjunto de funções) para obter a origem e o destino que pertencem a um caminho específico. O driver de miniporto de exibição pode determinar qual origem e destino pertencem a um caminho específico inspecionando os membros VidPnSourceId e VidPnTargetId da estrutura D3DKMDT_VIDPN_PRESENT_PATH que representa o caminho.

Confira também

Determinando se um VidPN tem suporte em um adaptador de exibição

Enumerando modos de origem e destino VidPN cofuncionais

Terminologia de rede de apresentação de vídeo

Obtendo modos de destino de monitor adicionais