Método IDXGIOutputDuplication::MapDesktopSurface (dxgi1_2.h)

Proporciona a la CPU acceso eficaz a una imagen de escritorio si esa imagen de escritorio ya está en memoria del sistema.

Sintaxis

HRESULT MapDesktopSurface(
  [out] DXGI_MAPPED_RECT *pLockedRect
);

Parámetros

[out] pLockedRect

Puntero a una estructura de DXGI_MAPPED_RECT que recibe los datos de superficie que la CPU necesita para acceder directamente a los datos de la superficie.

Valor devuelto

MapDesktopSurface devuelve:

  • S_OK si recuperó correctamente los datos de la superficie.
  • DXGI_ERROR_ACCESS_LOST si la interfaz de duplicación de escritorio no es válida. Normalmente, la interfaz de duplicación de escritorio no es válida cuando se muestra un tipo diferente de imagen en el escritorio. Algunos ejemplos de esta situación son:
    • Conmutador de escritorio
    • Cambio de modo
    • Cambiar de DWM activado, DWM desactivado u otra aplicación de pantalla completa
    En esta situación, la aplicación debe liberar la interfaz IDXGIOutputDuplication y crear una nueva IDXGIOutputDuplication para el nuevo contenido.
  • DXGI_ERROR_INVALID_CALL si la aplicación ya tiene un mapa pendiente en la imagen de escritorio. La aplicación debe llamar a UnMapDesktopSurface antes de volver a llamar a MapDesktopSurface . DXGI_ERROR_INVALID_CALL también se devuelve si la aplicación no posee la imagen de escritorio cuando se llama MapDesktopSurface.
  • DXGI_ERROR_UNSUPPORTED si la imagen de escritorio no está en memoria del sistema. En esta situación, la aplicación debe transferir primero la imagen a una superficie de ensayo y, a continuación, bloquear la imagen llamando al método IDXGISurface::Map .
  • E_INVALIDARG si el parámetro pLockedRect es incorrecto; por ejemplo, si pLockedRect es NULL.
  • Posiblemente otros códigos de error que se describen en el tema DXGI_ERROR .

Comentarios

Puede llamar correctamente a MapDesktopSurface si el miembro DesktopImageInSystemMemory de la estructura DXGI_OUTDUPL_DESC está establecido en TRUE. Si DesktopImageInSystemMemory es FALSE, MapDesktopSurface devuelve DXGI_ERROR_UNSUPPORTED. Llame a IDXGIOutputDuplication::GetDesc para recuperar la estructura de DXGI_OUTDUPL_DESC .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado dxgi1_2.h
Library Dxgi.lib

Consulte también

IDXGIOutputDuplication