Objets et interfaces VidPN
Le gestionnaire VidPN (Video Present Network) utilise un objet VidPN pour conserver des informations sur les associations entre les sources de présentation vidéo, les cibles de présentation vidéo et les modes d’affichage. Pour plus d’informations, consultez la rubrique Présentation des réseaux vidéo.
Objet VidPN
Un objet VidPN contient les sous-objets suivants.
Topologie
Définition du mode source
Définition du mode cible
Surveiller l’ensemble du mode source
Définir une plage de fréquences de surveillance
Ensemble de descripteurs de surveillance
Chemin d’accès
Source
Cible
Mode source
Mode cible
Surveiller le mode source
Le diagramme suivant illustre un objet VidPN et ses sous-objets.
Le diagramme précédent montre si une association particulière est un-à-un, un-à-plusieurs, plusieurs-à-un ou plusieurs-à-plusieurs. Par exemple, le diagramme montre qu’une source peut appartenir à plusieurs chemins, mais qu’une cible ne peut appartenir qu’à un seul chemin.
Les objets bleus du diagramme sont accessibles via des handles et des interfaces, et les objets gris sont accessibles via des pointeurs de structure. Une interface dans ce contexte est une structure qui contient des pointeurs de fonction. Par exemple, la structure DXGK_VIDPNTOPOLOGY_INTERFACE contient des pointeurs vers des fonctions (implémentées par le gestionnaire VidPN) que le pilote de miniport d’affichage appelle pour inspecter et modifier un objet de topologie. Lorsque le pilote miniport d’affichage appelle l’une de ces fonctions, il doit fournir un handle à un objet de topologie. Le tableau suivant répertorie les types de données handle, interface et pointeur utilisés pour accéder à un objet VidPN et à ses sous-objets.
Object | Méthode d’accès et type de données |
---|---|
VidPN (interface VidPN) | Accessible via le handle et l’interface. D3DKMDT_HVIDPN , DXGK_VIDPN_INTERFACE |
Topologie (interface de topologie VidPN) | Accessible via le handle et l’interface. D3DKMDT_HVIDPNTOPOLOGY , DXGK_VIDPNTOPOLOGY_INTERFACE |
Définition du mode source (interface d’ensemble du mode source VidPN) | Accessible via le handle et l’interface. D3DKMDT_HVIDPNSOURCEMODESET , DXGK_VIDPNSOURCEMODESET_INTERFACE |
Jeu de modes cibles (interface d’ensemble du mode cible VidPN) | Accessible via le handle et l’interface. D3DKMDT_HVIDPNTARGETMODESET, DXGK_VIDPNTARGETMODESET_INTERFACE |
Surveiller l’ensemble du mode source | Accessible via le handle et l’interface. D3DKMDT_HMONITORSOURCEMODESET, DXGK_MONITORSOURCEMODESET_INTERFACE |
Chemin d’accès | Accessible via le pointeur de structure. D3DKMDT_VIDPN_PRESENT_PATH |
Source | Accessible via le pointeur de structure. D3DKMDT_VIDEO_PRESENT_SOURCE |
Cible | Accessible via le pointeur de structure. D3DKMDT_VIDEO_PRESENT_TARGET |
Mode source | Accessible via le pointeur de structure. D3DKMDT_VIDPN_SOURCE_MODE |
Mode cible | Accessible via le pointeur de structure. D3DKMDT_VIDPN_TARGET_MODE |
Surveiller le mode source | Accessible via le pointeur de structure. D3DKMDT_MONITOR_SOURCE_MODE |
Définir une plage de fréquences de surveillance | Accessible via le pointeur de structure. [DXGK_MONITORFREQUENCYRANGESET_INTERFACE |
Ensemble de descripteurs de surveillance | Accessible via le pointeur de structure. [DXGK_MONITORDESCRIPTORSET_INTERFACE |
Gestionnaire VidPN
Le gestionnaire VidPN, qui est l’un des composants du sous-système du noyau graphique DirectX, coopère avec le pilote miniport d’affichage pour créer et gérer des VidPN. Les étapes suivantes décrivent comment le pilote miniport d’affichage obtient un handle et une interface pour un objet VidPN.
Pendant l’initialisation, le sous-système du noyau graphique DirectX appelle la fonction DxgkDdiStartDevice du pilote miniport d’affichage. Cet appel fournit au pilote miniport d’affichage une structure DXGKRNL_INTERFACE , qui contient des pointeurs vers des fonctions implémentées par le sous-système du noyau graphique DirectX. L’une de ces fonctions est DxgkCbQueryVidPnInterface.
À un moment donné, le gestionnaire VidPN a besoin de l’aide du pilote de miniport d’affichage. Il fournit donc au pilote miniport d’affichage une poignée à un objet VidPN en appelant l’une des fonctions suivantes :
Le pilote de miniport d’affichage transmet le handle obtenu à l’étape 2 à DxgkCbQueryVidPnInterface, qui retourne un pointeur vers une structure DXGK_VIDPN_INTERFACE .
Une fois que le pilote de miniport d’affichage dispose d’un handle et d’une interface pour un objet VidPN, il peut obtenir des descripteurs et des interfaces (si nécessaire) pour les sous-objets principaux : topologie, définition du mode source, définition du mode cible et définition du mode source de surveillance. Par exemple, le pilote miniport d’affichage peut appeler pfnGetTopology (l’une des fonctions de l’interface VidPN) pour obtenir un handle vers un objet de topologie VidPN et un pointeur vers une structure DXGK_VIDPNTOPOLOGY_INTERFACE .
Les fonctions suivantes (dans l’interface VidPN) fournissent des handles et des interfaces aux sous-objets principaux d’un objet VidPN.
Notez que deux des fonctions de la liste précédente ont des fonctions correspondantes qui libèrent des sous-objets VidPN.
Une fois que le pilote de miniport d’affichage a obtenu un handle et une interface pour l’un des sous-objets principaux VidPNs, il peut appeler les fonctions d’interface pour obtenir des descripteurs d’objets liés au sous-objet. Par exemple, avec un handle et une interface vers un objet de topologie, le pilote de miniport d’affichage peut effectuer les étapes suivantes pour obtenir les descripteurs de tous les chemins d’accès de la topologie.
-
Appelez la fonction pfnAcquireFirstPathInfo de l’interface de topologie VidPN pour obtenir un pointeur vers une structure D3DKMDT_VIDPN_PRESENT_PATH qui décrit le premier chemin de la topologie.
-
Appelez la fonction pfnAcquireNextPathInfo à plusieurs reprises pour obtenir des pointeurs vers D3DKMDT_VIDPN_PRESENT_PATH structures qui décrivent les chemins d’accès restants dans la topologie.
De même, le pilote miniport d’affichage peut obtenir des descripteurs des modes dans un mode défini en appelant les fonctions pfnAcquireFirstModeInfo et pfnAcquireNextModeInfo de l’une des interfaces suivantes.
Notez que l’interface DXGK_VIDPNSOURCEMODESET_INTERFACE n’a aucune fonction pour supprimer un mode d’un ensemble de modes source. Lorsque le pilote miniport d’affichage doit mettre à jour un ensemble de modes source, il ne modifie pas un jeu de modes existant en ajoutant et en supprimant des modes. Au lieu de cela, il crée un nouveau jeu de modes qui remplace l’ancien ensemble de modes. La fonction DxgkDdiEnumVidPnCofuncModality du pilote miniport d’affichage est un exemple de fonction qui doit mettre à jour les jeux de mode. Les étapes impliquées dans la mise à jour d’un ensemble de modes source sont les suivantes :
Appelez le pfnCreateNewModeInfo de l’interface DXGK_VIDPNSOURCEMODESET_INTERFACE pour obtenir un pointeur vers une structure D3DKMDT_VIDPN_SOURCE_MODE (allouée par le gestionnaire VidPN).
Appelez pfnAddMode à plusieurs reprises pour ajouter des modes au mode source défini.
Appelez la fonction pfnAssignSourceModeSet du DXGK_VIDPN_INTERFACE pour affecter le nouveau mode défini à une source vidéo présente particulière. Le nouveau jeu de modes source remplace l’ensemble de modes source actuellement affecté à cette source.
La mise à jour d’un ensemble de modes cibles est similaire à la mise à jour d’un ensemble de modes source. L’interface DXGK_VIDPNTARGETMODESET_INTERFACE a les fonctions suivantes :
Interface VidPN Target Mode Set
Fonction pfnCreateNewModeInfo pour créer un ensemble de modes cibles et fonction pfnAddMode pour ajouter des modes à l’ensemble.
Il n’existe aucune interface (ensemble de fonctions) pour obtenir la source et la cible qui appartiennent à un chemin d’accès particulier. Le pilote miniport d’affichage peut déterminer quelle source et quelle cible appartiennent à un chemin d’accès particulier en inspectant les membres VidPnSourceId et VidPnTargetId de la structure D3DKMDT_VIDPN_PRESENT_PATH qui représente le chemin.
Voir aussi
Détermination de la prise en charge d’un VidPN sur une carte d’affichage
Énumération des modes source et cible VidPN cofonctionnels