IDXGIOutput1::D uplicateOutput-Methode (dxgi1_2.h)

Erstellt eine Desktopduplizierungsschnittstelle aus der IDXGIOutput1-Schnittstelle , die eine Adapterausgabe darstellt.

Syntax

HRESULT DuplicateOutput(
  [in]  IUnknown               *pDevice,
  [out] IDXGIOutputDuplication **ppOutputDuplication
);

Parameter

[in] pDevice

Ein Zeiger auf die Direct3D-Geräteschnittstelle, die Sie zum Verarbeiten des Desktopimages verwenden können. Dieses Gerät muss über den Adapter erstellt werden, mit dem die Ausgabe verbunden ist.

[out] ppOutputDuplication

Ein Zeiger auf eine Variable, die die neue IDXGIOutputDuplication-Schnittstelle empfängt .

Rückgabewert

DuplicateOutput gibt Folgendes zurück:

  • S_OK, ob DuplicateOutput die Desktopduplizierungsschnittstelle erfolgreich erstellt hat.
  • E_INVALIDARG aus einem der folgenden Gründe:
    • Das angegebene Gerät (pDevice) ist ungültig, wurde nicht mit dem richtigen Adapter erstellt oder nicht aus IDXGIFactory1 erstellt (oder einer höheren Version einer DXGI Factory-Schnittstelle, die von IDXGIFactory1 erbt).
    • Die aufrufende Anwendung dupliziert diese Desktopausgabe bereits.
  • E_ACCESSDENIED, wenn die Anwendung nicht über Zugriffsberechtigungen für das aktuelle Desktopimage verfügt. Beispielsweise kann nur eine Anwendung, die unter LOCAL_SYSTEM ausgeführt wird, auf den sicheren Desktop zugreifen.
  • DXGI_ERROR_UNSUPPORTED, wenn die erstellte IDXGIOutputDuplication-Schnittstelle den aktuellen Desktopmodus oder das aktuelle Szenario nicht unterstützt. Beispielsweise werden 8bpp- und Nicht-DWM-Desktopmodi nicht unterstützt. Wenn DuplicateOutput mit DXGI_ERROR_UNSUPPORTED fehlschlägt, kann die Anwendung auf eine Systembenachrichtigung über Desktopswitches und Modusänderungen warten und Dann DuplicateOutput erneut aufrufen, nachdem eine solche Benachrichtigung auftritt. Weitere Informationen finden Sie unter EVENT_SYSTEM_DESKTOPSWITCH - und Modusänderungsbenachrichtigung (WM_DISPLAYCHANGE).
  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE, wenn DXGI den Grenzwert für die maximale Anzahl gleichzeitiger Duplizierungsanwendungen (Standardwert von vier) erreicht hat. Daher kann die aufrufende Anwendung erst dann Desktopduplizierungsschnittstellen erstellen, wenn die anderen Anwendungen geschlossen werden.
  • DXGI_ERROR_SESSION_DISCONNECTED, wenn DuplicateOutput fehlgeschlagen ist, weil die Sitzung derzeit getrennt ist.
  • Weitere Fehlercodes werden im Thema DXGI_ERROR beschrieben.

Plattformupdate für Windows 7: Unter Windows 7 oder Windows Server 2008 R2 mit installiertem Plattformupdate für Windows 7schlägt DuplicateOutput mit E_NOTIMPL fehl. Weitere Informationen zum Plattformupdate für Windows 7 finden Sie unter Plattformupdate für Windows 7.

Hinweise

Wenn eine Anwendung den gesamten Desktop duplizieren möchte, muss sie eine Desktopduplizierungsschnittstelle für jede aktive Ausgabe auf dem Desktop erstellen. Diese Schnittstelle bietet keine explizite Möglichkeit zum Synchronisieren des Timings jedes Ausgabebilds. Stattdessen muss die Anwendung den Zeitstempel jeder Ausgabe verwenden und dann bestimmen, wie die Bilder kombiniert werden sollen.

Damit DuplicateOutput erfolgreich ist, müssen Sie pDevice aus IDXGIFactory1 oder einer höheren Version einer DXGI-Factoryschnittstelle erstellen, die von IDXGIFactory1 erbt.

Wenn der aktuelle Modus ein Stereomodus ist, stellt die Desktopduplizierungsschnittstelle nur das Bild für das linke Stereobild bereit.

Standardmäßig können nur vier Prozesse eine IDXGIOutputDuplication-Schnittstelle gleichzeitig innerhalb einer einzelnen Sitzung verwenden. Ein Prozess kann nur über eine Desktopduplizierungsschnittstelle auf einer einzelnen Desktopausgabe verfügen. Dieser Prozess kann jedoch über eine Desktopduplizierungsschnittstelle für jede Ausgabe verfügen, die Teil des Desktops ist.

Erwägen Sie die Verwendung von DuplicateOutput1, um die Leistung zu verbessern.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 und Plattformupdate für Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 und Plattformupdate für Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile dxgi1_2.h
Bibliothek Dxgi.lib

Weitere Informationen

DuplicateOutput1

IDXGIOutput1