IDXGIOutputDuplication::MapDesktopSurface 方法 (dxgi1_2.h)
如果桌面映像已經在系統記憶體中,請提供CPU以有效率地存取桌面映像。
語法
HRESULT MapDesktopSurface(
[out] DXGI_MAPPED_RECT *pLockedRect
);
參數
[out] pLockedRect
DXGI_MAPPED_RECT結構的指標,可接收 CPU 需要直接存取介面數據的介面數據。
傳回值
MapDesktopSurface 會傳回:
- 如果成功擷取表面數據,S_OK。
- 如果桌面重複介面無效,DXGI_ERROR_ACCESS_LOST。 桌面重複介面通常會在桌面上顯示不同類型的影像時變成無效。 這種情況的範例包括:
- 桌面交換器
- 模式變更
- 從 DWM 開啟、關閉 DWM 或其他全螢幕應用程式
- 如果應用程式在桌面映像上已經有未處理的地圖,DXGI_ERROR_INVALID_CALL。 應用程式必須先呼叫 UnMapDesktopSurface ,才能再次呼叫 MapDesktopSurface 。 如果應用程式在呼叫 MapDesktopSurface 時未擁有桌面映像,也會傳回DXGI_ERROR_INVALID_CALL。
- 如果桌面映像不在系統記憶體中,DXGI_ERROR_UNSUPPORTED。 在此情況下,應用程式必須先將影像傳輸到預備表面,然後呼叫 IDXGISurface::Map 方法鎖定影像。
- 如果 pLockedRect 參數不正確,E_INVALIDARG;例如,如果 pLockedRect 為 NULL。
- 可能是 DXGI_ERROR 主題中所述的其他錯誤碼。
備註
如果 DXGI_OUTDUPL_DESC 結構的 DesktopImageInSystemMemory 成員設定為 TRUE,您可以成功呼叫 MapDesktopSurface。 如果 DesktopImageInSystemMemory 為 FALSE,MapDesktopSurface 會傳回DXGI_ERROR_UNSUPPORTED。 呼叫 IDXGIOutputDuplication::GetDesc 以擷取 DXGI_OUTDUPL_DESC 結構。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | dxgi1_2.h |
程式庫 | Dxgi.lib |