VidPN-Objekte und -Schnittstellen

Der VidPN-Manager (Video Present Network) verwendet ein VidPN-Objekt, um Informationen zu Zuordnungen zwischen vorhandenen Videoquellen, Videoobjekten und Anzeigemodi zu verwalten. Weitere Informationen finden Sie im Thema Einführung in Video Present Networks .

VidPN-Objekt

Ein VidPN-Objekt enthält die folgenden Unterobjekte.

  • Topologie

  • Quellmodussatz

  • Festlegen des Zielmodus

  • Überwachen des Quellmodus

  • Festlegen des Überwachungshäufigkeitsbereichs

  • Monitordeskriptorsatz

  • Pfad

  • `Source`

  • Ziel

  • Quellmodus

  • Zielmodus

  • Überwachen des Quellmodus

Das folgende Diagramm veranschaulicht ein VidPN-Objekt und seine Unterobjekte.

Diagramm zur Veranschaulichung eines VidPN-Objekts und seiner verschiedenen Unterobjekte, einschließlich Topologie, Modussätze und Pfaden.

Das obige Diagramm veranschaulicht, ob eine bestimmte Zuordnung 1:1, 1:n, n:1 oder n:n ist. Das Diagramm zeigt beispielsweise, dass eine Quelle zu mehr als einem Pfad gehören kann, ein Ziel jedoch nur zu einem Pfad gehören kann.

Auf die blauen Objekte im Diagramm wird über Handles und Schnittstellen zugegriffen, und auf die grauen Objekte wird über Strukturzeiger zugegriffen. Eine Schnittstelle in diesem Kontext ist eine Struktur, die Funktionszeiger enthält. Die DXGK_VIDPNTOPOLOGY_INTERFACE-Struktur enthält z. B. Zeiger auf Funktionen (implementiert vom VidPN-Manager), die der Anzeigeminiporttreiber aufruft, um ein Topologieobjekt zu überprüfen und zu ändern. Wenn der Anzeigeminiporttreiber eine dieser Funktionen aufruft, muss er ein Handle für ein Topologieobjekt bereitstellen. In der folgenden Tabelle sind die Handle-, Schnittstellen- und Zeigerdatentypen aufgeführt, die für den Zugriff auf ein VidPN-Objekt und dessen Unterobjekte verwendet werden.

Object Access-Methode und -Datentyp
VidPN (VidPN-Schnittstelle) Zugriff über Handle und Schnittstelle. D3DKMDT_HVIDPN, DXGK_VIDPN_INTERFACE
Topologie (VidPN-Topologieschnittstelle) Zugriff über Handle und Schnittstelle. D3DKMDT_HVIDPNTOPOLOGY, DXGK_VIDPNTOPOLOGY_INTERFACE
Source mode set (VidPN Source Mode Set Interface) Zugriff über Handle und Schnittstelle. D3DKMDT_HVIDPNSOURCEMODESET, DXGK_VIDPNSOURCEMODESET_INTERFACE
Target mode set (VidPN Target Mode Set Interface) Zugriff über Handle und Schnittstelle. D3DKMDT_HVIDPNTARGETMODESET, DXGK_VIDPNTARGETMODESET_INTERFACE
Überwachen des Quellmodus Zugriff über Handle und Schnittstelle. D3DKMDT_HMONITORSOURCEMODESET, DXGK_MONITORSOURCEMODESET_INTERFACE
Pfad Zugriff über den Strukturzeiger. D3DKMDT_VIDPN_PRESENT_PATH
`Source` Zugriff über den Strukturzeiger. D3DKMDT_VIDEO_PRESENT_SOURCE
Ziel Zugriff über den Strukturzeiger. D3DKMDT_VIDEO_PRESENT_TARGET
Quellmodus Zugriff über den Strukturzeiger. D3DKMDT_VIDPN_SOURCE_MODE
Zielmodus Zugriff über den Strukturzeiger. D3DKMDT_VIDPN_TARGET_MODE
Überwachen des Quellmodus Zugriff über den Strukturzeiger. D3DKMDT_MONITOR_SOURCE_MODE
Festlegen des Überwachungshäufigkeitsbereichs Zugriff über den Strukturzeiger. [DXGK_MONITORFREQUENCYRANGESET_INTERFACE
Monitordeskriptorsatz Zugriff über den Strukturzeiger. [DXGK_MONITORDESCRIPTORSET_INTERFACE

VidPN-Manager

Der VidPN-Manager, der eine der Komponenten des DirectX-Grafikkernsubsystems ist, arbeitet mit dem Display-Miniporttreiber zusammen, um VidPNs zu erstellen und zu verwalten. In den folgenden Schritten wird beschrieben, wie der Anzeigeminiporttreiber ein Handle und eine Schnittstelle zu einem VidPN-Objekt abruft.

  1. Während der Initialisierung ruft das DirectX-Grafikkernsubsystem die DxgkDdiStartDevice-Funktion des Anzeigeminiporttreibers auf. Dieser Aufruf stellt dem Display-Miniporttreiber eine DXGKRNL_INTERFACE-Struktur bereit, die Zeiger auf Funktionen enthält, die vom DirectX-Grafikkernsystem implementiert werden. Eine dieser Funktionen ist DxgkCbQueryVidPnInterface.

  2. Irgendwann benötigt der VidPN-Manager Hilfe vom Display-Miniporttreiber, sodass er dem Anzeige-Miniporttreiber durch Aufrufen einer der folgenden Funktionen ein Handle für ein VidPN-Objekt bereitstellt:

  3. Der Anzeige-Miniporttreiber übergibt das in Schritt 2 abgerufene Handle an DxgkCbQueryVidPnInterface, das einen Zeiger auf eine DXGK_VIDPN_INTERFACE-Struktur zurückgibt.

Nachdem der Anzeigeminiporttreiber über ein Handle und eine Schnittstelle zu einem VidPN-Objekt verfügt, kann er Handles und Schnittstellen (nach Bedarf) zu den primären Unterobjekten abrufen: Topologie, Quellmodussatz, Zielmodussatz und Quellmodussatz. Beispielsweise kann der Anzeige-Miniporttreiber pfnGetTopology (eine der Funktionen in der VidPN-Schnittstelle) aufrufen, um ein Handle für ein VidPN-Topologieobjekt und einen Zeiger auf eine DXGK_VIDPNTOPOLOGY_INTERFACE-Struktur abzurufen.

Die folgenden Funktionen (in der VidPN-Schnittstelle) stellen Handles und Schnittstellen zu den primären Unterobjekten eines VidPN-Objekts bereit.

Beachten Sie, dass zwei der Funktionen in der vorherigen Liste über entsprechende Funktionen verfügen, die VidPN-Unterobjekte freigeben.

Nachdem der Anzeigeminiporttreiber ein Handle und eine Schnittstelle zu einem der primären Unterobjekte von VidPNs abgerufen hat, kann er die Schnittstellenfunktionen aufrufen, um Deskriptoren von Objekten abzurufen, die mit dem Unterobjekt verknüpft sind. Bei einem Handle und einer Schnittstelle zu einem Topologieobjekt könnte der Anzeigeminiporttreiber beispielsweise die folgenden Schritte ausführen, um Deskriptoren aller Pfade in der Topologie abzurufen.

  1. VidPN-Topologieschnittstelle

    Rufen Sie die pfnAcquireFirstPathInfo-Funktion der VidPN-Topologieschnittstelle auf, um einen Zeiger auf eine D3DKMDT_VIDPN_PRESENT_PATH-Struktur zu erhalten, die den ersten Pfad in der Topologie beschreibt.

  2. VidPN-Topologieschnittstelle

    Rufen Sie die pfnAcquireNextPathInfo-Funktion wiederholt auf, um Zeiger auf D3DKMDT_VIDPN_PRESENT_PATH Strukturen abzurufen, die die verbleibenden Pfade in der Topologie beschreiben.

Ebenso kann der Anzeige-Miniporttreiber Deskriptoren der Modi in einem festgelegten Modus abrufen, indem die Funktionen pfnAcquireFirstModeInfo und pfnAcquireNextModeInfo einer der folgenden Modussatzschnittstellen aufgerufen werden.

Beachten Sie, dass die DXGK_VIDPNSOURCEMODESET_INTERFACE-Schnittstelle über keine Funktion zum Entfernen eines Modus aus einem Quellmodussatz verfügt. Wenn der Anzeige-Miniporttreiber einen Quellmodussatz aktualisieren muss, ändert er keinen vorhandenen Modus durch Hinzufügen und Entfernen von Modi. Stattdessen wird ein neuer Modussatz erstellt, der den alten Modussatz ersetzt. Ein Beispiel für eine Funktion, die Modussätze aktualisieren muss, ist die DxgkDdiEnumVidPnCofuncModality-Funktion des Anzeige-Miniporttreibers. Beim Aktualisieren eines Quellmodussatzes werden die folgenden Schritte ausgeführt:

  1. Rufen Sie pfnCreateNewModeInfo der DXGK_VIDPNSOURCEMODESET_INTERFACE-Schnittstelle auf, um einen Zeiger auf eine D3DKMDT_VIDPN_SOURCE_MODE-Struktur (zugeordnet vom VidPN-Manager) abzurufen.

    Rufen Sie pfnAddMode wiederholt auf, um dem Quellmodussatz Modi hinzuzufügen.

  2. Rufen Sie die pfnAssignSourceModeSet-Funktion des DXGK_VIDPN_INTERFACE auf, um den neuen Modus zuzuweisen, der einer bestimmten Videoquelle festgelegt ist. Der neue Quellmodussatz ersetzt den Quellmodussatz, der dieser Quelle derzeit zugewiesen ist.

Das Aktualisieren eines Zielmodussatzes ähnelt dem Aktualisieren eines Quellmodussatzes. Die DXGK_VIDPNTARGETMODESET_INTERFACE-Schnittstelle verfügt über die folgenden Funktionen:

Es gibt keine Schnittstelle (Reihe von Funktionen) zum Abrufen der Quelle und des Ziels, die zu einem bestimmten Pfad gehören. Der Anzeige-Miniporttreiber kann bestimmen, welche Quelle und welches Ziel zu einem bestimmten Pfad gehören, indem er die Member VidPnSourceId und VidPnTargetId der D3DKMDT_VIDPN_PRESENT_PATH Struktur untersucht, die den Pfad darstellt.

Weitere Informationen

Bestimmen, ob ein VidPN auf einem Grafikkarte unterstützt wird

Auflisten von kofunktionellen VidPN-Quell- und Zielmodi

Video Present Network Terminologie

Abrufen zusätzlicher Monitorzielmodi