다음을 통해 공유


IDXGIOutputDuplication::MapDesktopSurface 메서드(dxgi1_2.h)

해당 데스크톱 이미지가 이미 시스템 메모리에 있는 경우 데스크톱 이미지에 대한 효율적인 액세스 권한을 CPU에 제공합니다.

구문

HRESULT MapDesktopSurface(
  [out] DXGI_MAPPED_RECT *pLockedRect
);

매개 변수

[out] pLockedRect

CPU가 표면 데이터에 직접 액세스하는 데 필요한 표면 데이터를 수신하는 DXGI_MAPPED_RECT 구조체에 대한 포인터입니다.

반환 값

MapDesktopSurface 는 다음을 반환합니다.

  • 표면 데이터를 성공적으로 검색했는지 S_OK.
  • 데스크톱 중복 인터페이스가 잘못된 경우 DXGI_ERROR_ACCESS_LOST. 데스크톱 중복 인터페이스는 일반적으로 바탕 화면에 다른 유형의 이미지가 표시될 때 유효하지 않습니다. 이 상황의 예는 다음과 같습니다.
    • 데스크톱 스위치
    • 모드 변경
    • DWM 켜기, DWM 끄기 또는 기타 전체 화면 애플리케이션에서 전환
    이 경우 애플리케이션은 IDXGIOutputDuplication 인터페이스를 해제하고 새 콘텐츠에 대한 새 IDXGIOutputDuplication 을 만들어야 합니다.
  • 애플리케이션에 데스크톱 이미지에 미해결 맵이 이미 있는지 DXGI_ERROR_INVALID_CALL. 애플리케이션은 MapDesktopSurface를 다시 호출하기 전에 UnMapDesktopSurface를 호출해야 합니다. 애플리케이션이 MapDesktopSurface를 호출할 때 데스크톱 이미지를 소유하지 않은 경우에도 DXGI_ERROR_INVALID_CALL 반환됩니다.
  • 데스크톱 이미지가 시스템 메모리에 없는 경우 DXGI_ERROR_UNSUPPORTED. 이 경우 애플리케이션은 먼저 이미지를 스테이징 화면으로 전송한 다음 IDXGISurface::Map 메서드를 호출하여 이미지를 잠가야 합니다.
  • pLockedRect 매개 변수가 잘못된 경우 E_INVALIDARG. 예를 들어 pLockedRectNULL인 경우입니다.
  • DXGI_ERROR 항목에 설명된 다른 오류 코드일 수 있습니다.

설명

DXGI_OUTDUPL_DESC 구조체의 DesktopImageInSystemMemory 멤버가 TRUE로 설정된 경우 MapDesktopSurface를 성공적으로 호출할 수 있습니다. DesktopImageInSystemMemoryFALSE이면 MapDesktopSurface는 DXGI_ERROR_UNSUPPORTED 반환합니다. IDXGIOutputDuplication::GetDesc를 호출하여 DXGI_OUTDUPL_DESC 구조를 검색합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 dxgi1_2.h
라이브러리 Dxgi.lib

추가 정보

IDXGIOutputDuplication