Поделиться через


Метод IDXGIOutputDuplication::MapDesktopSurface (dxgi1_2.h)

Предоставляет ЦП эффективный доступ к образу рабочего стола, если этот образ рабочего стола уже находится в системной памяти.

Синтаксис

HRESULT MapDesktopSurface(
  [out] DXGI_MAPPED_RECT *pLockedRect
);

Параметры

[out] pLockedRect

Указатель на структуру DXGI_MAPPED_RECT , которая получает данные поверхности, необходимые ЦП для прямого доступа к данным поверхности.

Возвращаемое значение

MapDesktopSurface возвращает:

  • S_OK, если он успешно извлек данные поверхности.
  • DXGI_ERROR_ACCESS_LOST, если интерфейс дублирования рабочего стола недопустим. Интерфейс дублирования рабочего стола обычно становится недопустимым, если на рабочем столе отображается изображение другого типа. Примеры такой ситуации:
    • Переключатель рабочего стола
    • Изменение режима
    • Включение DWM, отключение DWM или другого полноэкранного приложения
    В этом случае приложение должно освободить интерфейс IDXGIOutputDuplication и создать новую idXGIOutputDuplication для нового содержимого.
  • DXGI_ERROR_INVALID_CALL, если приложение уже имеет выдающуюся карту на изображении рабочего стола. Приложение должно вызвать UnMapDesktopSurface , прежде чем снова вызвать MapDesktopSurface . DXGI_ERROR_INVALID_CALL также возвращается, если приложение не владело изображением рабочего стола при вызове MapDesktopSurface.
  • DXGI_ERROR_UNSUPPORTED, если образ рабочего стола не находится в системной памяти. В этом случае приложение должно сначала передать изображение на промежуточную поверхность, а затем заблокировать изображение, вызвав метод IDXGISurface::Map .
  • E_INVALIDARG, если параметр pLockedRect неверен; Например, если pLockedRect имеет значение NULL.
  • Возможно, другие коды ошибок, описанные в DXGI_ERROR разделе.

Комментарии

Вы можете успешно вызвать MapDesktopSurface , если для элемента DesktopImageInSystemMemoryструктуры DXGI_OUTDUPL_DESC задано значение TRUE. Если desktopImageInSystemMemory имеет значение FALSE, MapDesktopSurface возвращает DXGI_ERROR_UNSUPPORTED. Вызовите IDXGIOutputDuplication::GetDesc , чтобы получить структуру DXGI_OUTDUPL_DESC .

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header dxgi1_2.h
Библиотека Dxgi.lib

См. также раздел

IDXGIOutputDuplication