IDXGIOutputDuplication::MapDesktopSurface-Methode (dxgi1_2.h)

Stellt der CPU effizienten Zugriff auf ein Desktopimage bereit, wenn sich dieses Desktopimage bereits im Systemspeicher befindet.

Syntax

HRESULT MapDesktopSurface(
  [out] DXGI_MAPPED_RECT *pLockedRect
);

Parameter

[out] pLockedRect

Ein Zeiger auf eine DXGI_MAPPED_RECT-Struktur , die die Oberflächendaten empfängt, die die CPU benötigt, um direkt auf die Surface-Daten zuzugreifen.

Rückgabewert

MapDesktopSurface gibt Folgendes zurück:

  • S_OK, wenn die Oberflächendaten erfolgreich abgerufen wurden.
  • DXGI_ERROR_ACCESS_LOST, wenn die Desktopduplizierungsschnittstelle ungültig ist. Die Desktopduplizierungsschnittstelle wird in der Regel ungültig, wenn ein anderer Bildtyp auf dem Desktop angezeigt wird. Beispiele für diese Situation sind:
    • Desktopswitch
    • Modusänderung
    • Wechseln von DWM ein, DWM aus oder einer anderen Vollbildanwendung
    In diesem Fall muss die Anwendung die IDXGIOutputDuplication-Schnittstelle freigeben und eine neue IDXGIOutputDuplication für den neuen Inhalt erstellen.
  • DXGI_ERROR_INVALID_CALL, wenn die Anwendung bereits über eine ausstehende Karte im Desktopbild verfügt. Die Anwendung muss UnMapDesktopSurface aufrufen, bevor MapDesktopSurface erneut aufgerufen wird. DXGI_ERROR_INVALID_CALL wird auch zurückgegeben, wenn die Anwendung beim Aufrufen von MapDesktopSurface nicht im Besitz des Desktopimages war.
  • DXGI_ERROR_UNSUPPORTED, wenn sich das Desktopimage nicht im Systemspeicher befindet. In diesem Fall muss die Anwendung zunächst das Bild auf eine Stagingoberfläche übertragen und dann das Bild sperren, indem die IDXGISurface::Map-Methode aufgerufen wird.
  • E_INVALIDARG, wenn der Parameter pLockedRect falsch ist; beispiel: pLockedRect ist NULL.
  • Möglicherweise weitere Fehlercodes, die im Thema DXGI_ERROR beschrieben werden.

Hinweise

Sie können MapDesktopSurface erfolgreich aufrufen, wenn das DesktopImageInSystemMemory-Element der DXGI_OUTDUPL_DESC-Struktur auf TRUE festgelegt ist. Wenn DesktopImageInSystemMemoryauf FALSE festgelegt ist, gibt MapDesktopSurface DXGI_ERROR_UNSUPPORTED zurück. Rufen Sie IDXGIOutputDuplication::GetDesc auf, um die DXGI_OUTDUPL_DESC-Struktur abzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile dxgi1_2.h
Bibliothek Dxgi.lib

Weitere Informationen

IDXGIOutputDuplication