IDXGIOutputDuplication::ReleaseFrame-Methode (dxgi1_2.h)

Gibt an, dass die Anwendung die Verarbeitung des Frames abgeschlossen hat.

Syntax

HRESULT ReleaseFrame();

Rückgabewert

ReleaseFrame gibt Folgendes zurück:

  • S_OK, wenn sie erfolgreich abgeschlossen wurde.
  • DXGI_ERROR_INVALID_CALL, wenn die Anwendung den Frame bereits freigegeben hat.
  • DXGI_ERROR_ACCESS_LOST, wenn die Desktopduplizierungsschnittstelle ungültig ist. Die Desktopduplizierungsschnittstelle wird in der Regel ungültig, wenn ein anderer Imagetyp auf dem Desktop angezeigt wird. Beispiele für diese Situation sind:
    • Desktop-Switch
    • Moduswechsel
    • Wechseln von DWM on, DWM off oder einer anderen Vollbildanwendung
    In dieser Situation muss die Anwendung die IDXGIOutputDuplication-Schnittstelle freigeben und eine neue IDXGIOutputDuplication für den neuen Inhalt erstellen.
  • Möglicherweise andere Fehlercodes, die im Thema DXGI_ERROR beschrieben werden.

Hinweise

Die Anwendung muss den Frame freigeben, bevor sie den nächsten Frame erhält. Nachdem der Frame freigegeben wurde, wird die Oberfläche, die die Desktop-Bitmap enthält, ungültig. Sie können die Oberfläche nicht in einem DirectX-Grafikvorgang verwenden.

Aus Leistungsgründen wird empfohlen, den Frame direkt vor dem Aufrufen der IDXGIOutputDuplication::AcquireNextFrame-Methode freizugeben, um den nächsten Frame abzurufen. Wenn der Client den Frame nicht besitzt, kopiert das Betriebssystem alle Desktopupdates auf die Oberfläche. Dies kann zu verschwendeten GPU-Zyklen führen, wenn das Betriebssystem dieselbe Region für jeden frame aktualisiert, der auftritt. Wenn der Client den Frame abruft, ist dem Client nur das endgültige Update für diese Region bekannt. Daher werden alle überlappenden Updates während früherer Frames verschwendet. Wenn der Client einen Frame erwirbt, besitzt der Client die Oberfläche. Daher kann das Betriebssystem nur die aktualisierten Regionen nachverfolgen und keine Desktopupdates auf die Oberfläche kopieren. Aufgrund dieses Verhaltens wird empfohlen, die Zeit zwischen dem Aufruf zum Freigeben des aktuellen Frames und dem Aufruf zum Abrufen des nächsten Frames zu minimieren.

Anforderungen

   
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