IDXGIOutput5::D uplicateOutput1-Methode (dxgi1_5.h)

Ermöglicht das Angeben einer Liste der unterstützten Formate für Vollbildoberflächen, die vom IDXGIOutputDuplication-Objekt zurückgegeben werden können.

Syntax

HRESULT DuplicateOutput1(
  [in]  IUnknown               *pDevice,
        UINT                   Flags,
  [in]  UINT                   SupportedFormatsCount,
  [in]  const DXGI_FORMAT      *pSupportedFormats,
  [out] IDXGIOutputDuplication **ppOutputDuplication
);

Parameter

[in] pDevice

Typ: IUnknown*

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

Flags

Typ: UINT

Ein Bitfeld DXGI_OUTDUPL_FLAG Enumerationswerte, die die Art der zu erstellenden Erfassungsoberfläche beschreiben.

[in] SupportedFormatsCount

Typ: UINT

Gibt die Anzahl der unterstützten Formate an.

[in] pSupportedFormats

Typ: const DXGI_FORMAT*

Gibt ein Array mit der Länge SupportedFormatsCount von DXGI_FORMAT Einträgen an.

[out] ppOutputDuplication

Typ: IDXGIOutputDuplication**

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

Rückgabewert

Typ: HRESULT

  • S_OK, wenn DuplicateOutput1 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 (oder einer höheren Version einer DXGI Factory-Schnittstelle, die von IDXGIFactory1 erbt) erstellt.
    • Die aufrufende Anwendung dupliziert bereits diese Desktopausgabe.
  • E_ACCESSDENIED, wenn die Anwendung nicht über Zugriffsberechtigungen für das aktuelle Desktopimage verfügt. Beispielsweise kann nur eine Anwendung, die auf 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 die Desktopmodi 8bpp und non-DWM nicht unterstützt.

    Wenn DuplicateOutput1 mit DXGI_ERROR_UNSUPPORTED fehlschlägt, kann die Anwendung auf eine Systembenachrichtigung über Desktopoptionen und Modusänderungen warten und Dann DuplicateOutput1 erneut aufrufen, nachdem eine solche Benachrichtigung auftritt. Weitere Informationen finden Sie unter desktop switch (EVENT_SYSTEM_DESKTOPSWITCH) und Mode Change Notification (WM_DISPLAYCHANGE).

  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE, wenn DXGI den Grenzwert für die maximale Anzahl gleichzeitiger Duplizierungsanwendungen (Standardwert vier) erreicht hat. Daher kann die aufrufende Anwendung keine Desktopduplizierungsschnittstellen erstellen, bis die anderen Anwendungen geschlossen werden.
  • DXGI_ERROR_SESSION_DISCONNECTED, wenn DuplicateOutput1 fehlgeschlagen ist, weil die Sitzung derzeit getrennt ist.
  • Weitere Fehlercodes werden im Thema DXGI_ERROR beschrieben.

Hinweise

Diese Methode ermöglicht den direkten Empfang des ursprünglichen Backpufferformats, das von einer ausgeführten Vollbildanwendung verwendet wird. Zum Vergleich konvertiert die Verwendung der ursprünglichen DuplicateOutput-Funktion immer die Vollbildoberfläche in ein 32-Bit-BGRA-Format. In Fällen, in denen die aktuelle Vollbildanwendung ein anderes Pufferformat verwendet, führt eine Konvertierung in 32-Bit-BGRA zu leistungsbedingten Leistungseinbußen. Neben dem Leistungsvorteil, die Formatkonvertierung überspringen zu können, ermöglicht die Verwendung von DuplicateOutput1 auch den Empfang des vollständigen Farbumfangs in Fällen, in denen ein Hochfarbformat (z. B. R10G10B10A2) präsentiert wird.

Das pSupportedFormats-Array sollte nur Anzeigescanformate enthalten. Unter Formatunterstützung für Direct3D Feature level 11.0 Hardware finden Sie die erforderlichen Scan-Out-Formate auf jeder Featureebene. Wenn das aktuelle Vollbildpufferformat nicht im pSupportedFormats-Array enthalten ist, wählt DXGI eines der angegebenen Formate aus und konvertiert den Vollbildpuffer in dieses Format, bevor es von IDXGIOutputDuplication:AcquireNextFrame zurückgibt. Die Liste der unterstützten Formate sollte immer DXGI_FORMAT_B8G8R8A8_UNORM enthalten, da dies das am häufigsten verwendete Format für den Desktop ist.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile dxgi1_5.h
Bibliothek Dxgi.lib
DLL Dxgi.dll

Weitere Informationen

DuplicateOutput

IDXGIOutput5