Compartilhar via


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

Fornece à CPU acesso eficiente a uma imagem da área de trabalho se essa imagem da área de trabalho já estiver na memória do sistema.

Sintaxe

HRESULT MapDesktopSurface(
  [out] DXGI_MAPPED_RECT *pLockedRect
);

Parâmetros

[out] pLockedRect

Um ponteiro para uma estrutura DXGI_MAPPED_RECT que recebe os dados de superfície que a CPU precisa para acessar diretamente os dados da superfície.

Retornar valor

MapDesktopSurface retorna:

  • S_OK se ele recuperou com êxito os dados da superfície.
  • DXGI_ERROR_ACCESS_LOST se a interface de duplicação da área de trabalho for inválida. A interface de duplicação da área de trabalho normalmente se torna inválida quando um tipo diferente de imagem é exibido na área de trabalho. Exemplos dessa situação são:
    • Comutador da área de trabalho
    • Alteração de modo
    • Alternar do DWM ativado, DWM desativado ou outro aplicativo de tela inteira
    Nessa situação, o aplicativo deve liberar a interface IDXGIOutputDuplication e criar uma nova IDXGIOutputDuplication para o novo conteúdo.
  • DXGI_ERROR_INVALID_CALL se o aplicativo já tiver um mapa pendente na imagem da área de trabalho. O aplicativo deve chamar UnMapDesktopSurface antes de chamar MapDesktopSurface novamente. DXGI_ERROR_INVALID_CALL também será retornado se o aplicativo não tiver a imagem da área de trabalho quando chamado MapDesktopSurface.
  • DXGI_ERROR_UNSUPPORTED se a imagem da área de trabalho não estiver na memória do sistema. Nessa situação, o aplicativo deve primeiro transferir a imagem para uma superfície de preparo e, em seguida, bloquear a imagem chamando o método IDXGISurface::Map .
  • E_INVALIDARG se o parâmetro pLockedRect estiver incorreto; por exemplo, se pLockedRect for NULL.
  • Possivelmente outros códigos de erro descritos no tópico DXGI_ERROR .

Comentários

Você poderá chamar MapDesktopSurface com êxito se o membro DesktopImageInSystemMemory da estrutura DXGI_OUTDUPL_DESC estiver definido como TRUE. Se DesktopImageInSystemMemory for FALSE, MapDesktopSurface retornará DXGI_ERROR_UNSUPPORTED. Chame IDXGIOutputDuplication::GetDesc para recuperar a estrutura DXGI_OUTDUPL_DESC .

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho dxgi1_2.h
Biblioteca Dxgi.lib

Confira também

IDXGIOutputDuplication