IDXGIOutputDuplication::GetFrameDirtyRects-Methode (dxgi1_2.h)
Ruft Informationen zu modifiziert Rechtecke für den aktuellen Desktopframe ab.
Syntax
HRESULT GetFrameDirtyRects(
[in] UINT DirtyRectsBufferSize,
[out] RECT *pDirtyRectsBuffer,
[out] UINT *pDirtyRectsBufferSizeRequired
);
Parameter
[in] DirtyRectsBufferSize
Die Größe des Puffers in Bytes, den der Aufrufer an den pDirtyRectsBuffer-Parameter übergeben hat .
[out] pDirtyRectsBuffer
Ein Zeiger auf ein Array von RECT-Strukturen, das die modifiziert Rechteckbereiche für den Desktopframe identifiziert.
[out] pDirtyRectsBufferSizeRequired
Zeiger auf eine Variable, die die Anzahl von Bytes empfängt, die GetFrameDirtyRects benötigt, um Informationen zu modifiziert Regionen im Puffer bei pDirtyRectsBuffer zu speichern.
Weitere Informationen zum Zurückgeben der erforderlichen Puffergröße finden Sie unter Hinweise.
Rückgabewert
GetFrameDirtyRects gibt Folgendes zurück:
- S_OK, wenn Informationen zu modifiziert Rechtecken erfolgreich abgerufen wurden.
- 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
- DXGI_ERROR_MORE_DATA, wenn der Puffer, den die aufrufende Anwendung bereitgestellt hat, nicht groß genug war.
- DXGI_ERROR_INVALID_CALL, wenn die Anwendung GetFrameDirtyRects aufgerufen hat, ohne das Desktopimage zu besitzen.
- E_INVALIDARG, wenn einer der Parameter für GetFrameDirtyRects falsch ist; Beispielsweise, wenn pDirtyRectsBuffer NULL ist.
- Möglicherweise andere Fehlercodes, die im Thema DXGI_ERROR beschrieben werden.
Hinweise
GetFrameDirtyRects speichert einen Größenwert in der Variablen unter pDirtyRectsBufferSizeRequired. Dieser Wert gibt die Anzahl der Bytes an, die GetFrameDirtyRects benötigt, um Informationen zu modifiziert Regionen zu speichern. Sie können diesen Wert in den folgenden Situationen verwenden, um die Menge des Arbeitsspeichers zu bestimmen, der für zukünftige Puffer zugewiesen werden soll, die Sie an pDirtyRectsBuffer übergeben:
- GetFrameDirtyRects schlägt mit DXGI_ERROR_MORE_DATA fehl, da der Puffer nicht groß genug ist.
- GetFrameDirtyRects stellt einen Puffer bereit, der größer als erforderlich ist. Der bei pDirtyRectsBufferSizeRequired zurückgegebene Größenwert informiert den Aufrufer darüber, wie viel Pufferspeicher tatsächlich verwendet wurde im Vergleich zu dem Pufferspeicher, den der Aufrufer zugewiesen und im Parameter DirtyRectsBufferSize angegeben hat.
Der Puffer enthält die Liste der modifiziert RECTs für den aktuellen Frame.
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 |