Freigeben über


IddCx-Objekte

Die IddCx (Indirect Display Driver Class eXtension) verwendet das erweiterbare UMDF-Objektmodell zur Darstellung der verschiedenen Komponenten von indirekten Anzeigegeräten. Die UMDF Objektmodell kann der treiberspezifische Speicher mit jedem IddCx- (und damit UMDF-) Objekt verknüpft werden. Weitere Informationen finden Sie unter UMDF-Objektmodell.

Die Reihenfolge, in der IDD-Objekte erstellt werden, ist:

  • Der Treiber erstellt zunächst eine IDDCX_ADAPTER Objekt.
  • Der Treiber erstellt dann eine IDDCX_MONITOR Objekt.
  • Sobald die objekte IDDCX_ADAPTER und IDDCX_MONITOR erstellt wurden, erstellt das Betriebssystem IDDCX_SWAPCHAIN und IDDCX_OPMCTX Objekte und sendet sie an den Treiber.

Die folgenden Abschnitte enthalten weitere Details zu diesen Objekten.

IDDCX_ADAPTER

Dieses Objekt stellt einen einzelnen logischen Anzeigeadapter dar, der vom Treiber in einem zweistufigen Prozess erstellt wird:

Das IDD-Modell hat keinen expliziten Callback zum Zerstören des Adapters. Nach erfolgreichem Abschluss der Adapterinitialisierungssequenz ist der Adapter so lange gültig, bis das zur Initialisierungszeit übergebene UMDF-Gerät gestoppt wird. Wenn der indirekte Anzeigetreiber (IDD) den Adapter erstellt, liefert er statische Adapterinformationen über den indirekten Anzeigeadapter.

Handhabung von Multifunktionsgeräten

Im einfachsten Fall gibt es eine Eins-zu-Eins-Zuordnung zwischen dem UMDF-Geräteobjekt, das vom Plug-and-Play-Subsystem für das angeschlossene indirekte Anzeigegerät erstellt wurde, und dem IDDCX_ADAPTER objekt, das die IDD erstellt.

Es kann komplexere Szenarien geben, in denen ein einziger indirekter Display-Dongle mehrere Plug-and-Play-Geräte enthält. Eine indirekte Anzeigelösung kann z. B. mehrere PnP-Gerätefunktionen wie ein Mikrofon (Audiotreiber) und eine Kamera (Videotreiber) aufweisen. In solchen Fällen ist die IDD für die Erstellung eines einzigen IDDCX_ADAPTER Objekt für die mehreren UMDF-Geräteobjekte, die für jedes PnP-Gerät erstellt wurden. Der Treiber muss die folgenden Punkte in diesem Szenario berücksichtigen:

  • Die IDDCX_ADAPTER sollte erst erstellt werden, wenn alle PnP-Geräte, aus denen die indirekte Anzeigelösung besteht, erfolgreich gestartet sind.
  • Der Fahrer muss eine einzige WDFDEVICE bei der Erstellung des Adapters, so dass er eine Logik benötigt, um zu entscheiden, welches UMDF-Gerät er weitergibt.
  • Wenn eines der Geräte, die den indirekten Displayadapter bilden, einen Hardwarefehler aufweist, sollte der Treiber alle Geräte als fehlerhaft melden, die den Adapter bilden.

IDDCX_MONITOR

Dieses Objekt stellt einen bestimmten Monitor dar, der mit einem der Verbinder auf dem indirekten Anzeigeadapter verbunden ist.

Der Treiber erstellt das Monitorobjekt in einem zweistufigen Prozess:

Wenn ein Monitor ausgesteckt wird, ruft der Treiber die Funktion IddCxMonitorDeparture Callback, um es zu melden. Dieser Aufruf bewirkt, dass die IDDCX_MONITOR zu zerstörenden Objekts. Auch wenn derselbe Monitor vom Stromnetz getrennt und wieder angeschlossen wird, bleibt die IddCxMonitorDeparture/IddCxMonitorArrival sequenz muss erneut aufgerufen werden.

Die IDDCX_MONITOR ist ein Kind der IDDCX_ADAPTER objekt.

IDDCX_SWAPCHAIN

Dieses Objekt stellt eine swapchain die Desktop-Bilder zur Anzeige auf einem angeschlossenen Monitor bereitstellt. Die Swapchain hat mehrere Puffer, damit das Betriebssystem das nächste Desktop-Image in einem Puffer zusammenstellen kann, während die IDD auf einen anderen Puffer zugreift. Die IDDCX_SWAPCHAIN ist ein Kind der IDDCX_MONITOR so dass einem bestimmten Monitor immer nur eine Swapchain zugewiesen ist.

Das Betriebssystem erstellt und vernichtet die IDDCX_SWAPCHAIN Objekte und weist sie Monitoren zu bzw. hebt ihre Zuweisung auf, indem er die EvtIddCxMonitorAssignSwapChain und EvtIddCxMonitorUnassignSwapChain ruft.

IDDCX_OPMCTX

Dieses Objekt repräsentiert einen aktiven Output Protection Manager (OPM)-Kontext, der aus einem einzelnen Anwendungs-OPM-Kontext stammt und den die Anwendung nutzen kann, um den Ausgabeschutz auf einem einzelnen Monitor zu steuern. Mehrere OPM-Kontexte können gleichzeitig auf einem bestimmten Monitor aktiv sein. Das Betriebssystem ruft den Treiber auf, um die OPM-Kontexte zu erzeugen und zu zerstören, indem es die EvtIddCxMonitorOPMCreateProtectedOutput und EvtIddCxMonitorOPMDestroyProtectedOutput DDI ruft an.