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 |
Library | Dxgi.lib |