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 끄기 또는 기타 전체 화면 애플리케이션에서 전환
- 애플리케이션에 데스크톱 이미지에 미해결 맵이 이미 있는지 DXGI_ERROR_INVALID_CALL. 애플리케이션은 MapDesktopSurface를 다시 호출하기 전에 UnMapDesktopSurface를 호출해야 합니다. 애플리케이션이 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 |