Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’infrastructure IddCx (classe de pilote indirect eXtension) utilise le modèle objet UMDF extensible pour représenter les différents composants des appareils d’affichage indirects. Le modèle objet UMDF permet au stockage spécifique au pilote d’être associé à chaque objet IddCx (et donc UMDF). Pour plus d’informations, consultez modèle objet UMDF.
L’ordre dans lequel les objets IDD sont créés est :
- Le pilote crée d’abord un objet IDDCX_ADAPTER .
- Le pilote crée ensuite un objet IDDCX_MONITOR .
- Une fois les objets IDDCX_ADAPTER et IDDCX_MONITOR créés, le système d’exploitation crée IDDCX_SWAPCHAIN et IDDCX_OPMCTX objets et les envoie au pilote.
Les sections suivantes fournissent plus de détails sur ces objets.
IDDCX_ADAPTER
Cet objet représente un seul adaptateur d’affichage logique créé par le pilote dans un processus en deux étapes :
- Le pilote appelle la fonction de rappel IddCxAdapterInitAsync .
- Le système d'exploitation appelle le DDI du pilote EvtIddCxAdapterInitFinished pour terminer l'initialisation.
Le modèle IDD ne comporte pas de rappel explicite pour la destruction de l'adaptateur. Une fois la séquence d’initialisation de l’adaptateur terminée, l’adaptateur est valide jusqu’à ce que l’appareil UMDF passé au moment de l’initialisation soit arrêté. Lorsque le pilote d’affichage indirect (IDD) crée l’adaptateur, il fournit des informations statiques sur l’adaptateur d’affichage indirect.
Gestion des appareils à fonctions multiples
Dans le cas le plus simple, il existe un mappage un-à-un entre l’objet d’appareil UMDF créé par le sous-système plug-and-play pour l’appareil d’affichage indirect attaché et l’objet IDDCX_ADAPTER créé par l’IDD.
Il peut y avoir des scénarios plus complexes où un seul dongle d’affichage indirect contient plusieurs appareils plug-and-play. Par exemple, une solution d’affichage indirect peut avoir plusieurs fonctions d’appareil PnP telles qu’un microphone (pilote audio) et une caméra (pilote vidéo). Dans de telles situations, l’IDD est responsable de la création d’un objet IDDCX_ADAPTER unique pour plusieurs objets d’appareil UMDF créés pour chaque appareil PnP. Le pilote doit prendre en compte les points suivants dans ce scénario :
- Le IDDCX_ADAPTER ne doit être créé qu’une fois que tous les appareils PnP qui composent la solution d’affichage indirecte sont démarrés avec succès.
- Le pilote doit passer un seul WDFDEVICE lors de la création de l’adaptateur. Il nécessite donc une logique pour déterminer l’appareil UMDF qu’il passera.
- Si l’un des appareils qui composent l’adaptateur d’affichage indirect a une erreur matérielle, le pilote doit signaler tous les appareils qui composent l’adaptateur comme étant en erreur.
IDDCX_MONITOR
Cet objet représente un moniteur spécifique connecté à l’un des connecteurs sur l’adaptateur d’affichage indirect.
Le pilote crée l’objet monitor dans un processus en deux étapes :
- Il appelle d’abord le rappel IddCxMonitorCreate pour créer l’objet IDDCX_MONITOR .
- Il appelle ensuite le rappel IddCxMonitorArrival pour terminer l’arrivée du moniteur.
Lorsqu’un moniteur est déconnecté, le pilote appelle le rappel IddCxMonitorDeparture pour le signaler. Cet appel entraîne la destruction de l’objet IDDCX_MONITOR . Même si le même moniteur est déconnecté et reconnecté, la séquence IddCxMonitorDeparture/IddCxMonitorArrival doit être appelée à nouveau.
Le IDDCX_MONITOR est un enfant de l’objet IDDCX_ADAPTER .
IDDCX_SWAPCHAIN
Cet objet représente une chaîne d’échange qui fournit des images de bureau à afficher sur un moniteur connecté. La chaîne d’échange a plusieurs mémoires tampons pour permettre au système d’exploitation de composer l’image de bureau suivante dans une mémoire tampon tandis que l’IDD accède à une autre mémoire tampon. Le IDDCX_SWAPCHAIN est un enfant de l’IDDCX_MONITOR , il n’y a donc qu’une seule chaîne d’échange affectée à un moniteur donné à tout moment.
Le système d’exploitation crée et détruit les objets IDDCX_SWAPCHAIN et les associe ou les dissocie des moniteurs en utilisant les appels EvtIddCxMonitorAssignSwapChain et EvtIddCxMonitorUnassignSwapChain.
IDDCX_OPMCTX
Cet objet représente un contexte OPM ( Output Protection Manager ) actif à partir d’un contexte OPM d’application unique que l’application peut utiliser pour contrôler la protection de sortie sur un seul moniteur. Plusieurs contextes OPM peuvent être actifs sur un moniteur donné en même temps. Le système d’exploitation appelle le pilote pour créer et détruire les contextes OPM à l’aide des appels DDI EvtIddCxMonitorOPMCreateProtectedOutput et EvtIddCxMonitorOPMDestroyProtectedOutput.