Partager via


Objets IddCx

IddCx (Indirect Display Driver Class eXtension) utilise le modèle objet UMDF extensible pour représenter les composants du périphérique d’affichage indirect. Le modèle objet UMDF permet d’associer le stockage spécifique au pilote à 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 suivant :

  • 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 n’a pas de rappel d’adaptateur de destruction explicite. Une fois la séquence d’initialisation de l’adaptateur terminée avec succès, l’adaptateur est valide jusqu’à ce que l’appareil UMDF soit arrêté au moment de l’initialisation. Lors de la création de l’adaptateur, le pilote fournit des informations statiques sur l’adaptateur graphique indirect.

Gestion des appareils multifonctions

Dans le cas le plus simple, il existe un mappage un-à-un entre l’objet de périphérique UMDF créé par le sous-système plug-and-play pour le périphérique d’affichage indirect attaché et l’objet IDDCX_ADAPTER créé par le pilote d’affichage indirect (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 de périphérique PnP, telles qu’un microphone (pilote audio) et une caméra (pilote vidéo). Dans de telles situations, il est de la responsabilité de l’IDD de créer un seul objet IDDCX_ADAPTER pour les plusieurs objets d’appareil UMDF créés pour chaque appareil PnP. Le pilote doit prendre en compte les éléments 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 indirect ont été correctement démarré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 le périphérique 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 de l’adaptateur d’affichage indirect.

Le pilote crée l’objet monitor dans un processus en deux étapes :

Lorsqu’un moniteur est débranché, le pilote appelle le rappel IddCxMonitorDeparture pour signaler que le moniteur a été débranché, ce qui entraîne la destruction de l’objet IDDCX_MONITOR . Même si le même moniteur est déconnecté puis 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 pendant que l’IDD accède à une autre mémoire tampon. Le IDDCX_SWAPCHAIN est un enfant de l’IDDCX_MONITOR de sorte qu’il n’y aura 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 affecte/annule leur affectation aux moniteurs à l’aide des appels Ddi 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 du pilote.