Partager via


Objets IddCx

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 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 :

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.