Дублирование рабочего стола
Windows 8 представляет новый API на основе инфраструктуры графики Microsoft DirectX (DXGI), который упрощает поддержку сценариев совместной работы и доступа к удаленному рабочему столу для независимых поставщиков программного обеспечения.
Такие приложения широко используются в корпоративных и образовательных сценариях. Эти приложения имеют общее требование: доступ к содержимому рабочего стола и возможность переноса содержимого в удаленное расположение. API-интерфейсы дублирования Windows 8 Desktop предоставляют доступ к содержимому рабочего стола.
В настоящее время api Windows не позволяет приложению легко реализовать этот сценарий. Поэтому приложения используют зеркало драйверы, очистку экрана и другие собственные методы для доступа к содержимому рабочего стола. Однако эти методы имеют следующий набор ограничений:
- Оптимизировать производительность может быть сложной задачей.
- Эти решения могут не поддерживать более новые API для отрисовки графики, так как API-интерфейсы выпускаются после выпуска продукта.
- Windows не всегда предоставляет расширенные метаданные для оптимизации.
- Не все решения совместимы с классической композицией в Windows Vista и более поздних версиях Windows.
Windows 8 представлен API на основе DXGI, который называется API дублирования рабочего стола. Этот API предоставляет доступ к содержимому рабочего стола с помощью растровых изображений и связанных метаданных для оптимизации. Этот API работает с включенной темой Aero и не зависит от графического API, используемого приложениями. Если пользователь может просматривать приложение в локальной консоли, содержимое также можно просмотреть удаленно. Это означает, что даже полноэкранные приложения DirectX могут дублироваться. Обратите внимание, что API обеспечивает защиту от доступа к защищенному видеоконтенту.
API позволяет приложению запрашивать у Windows доступ к содержимому рабочего стола вдоль границ монитора. Приложение может дублировать один или несколько активных дисплеев. Когда приложение запрашивает дублирование, происходит следующее:
- Windows отрисовывает рабочий стол и предоставляет копию в приложение.
- Каждый отрисованный кадр помещается в память GPU.
- Каждый отрисованный кадр поставляется со следующими метаданными:
- Грязная область
- Перемещение между экранами
- Сведения об курсоре мыши
- Приложению предоставляется доступ к кадру и метаданным.
- Приложение отвечает за обработку каждого кадра:
- Приложение может выбрать оптимизацию в зависимости от грязное региона.
- Приложение может использовать аппаратное ускорение для обработки данных перемещения и мыши.
- Приложение может использовать аппаратное ускорение для сжатия перед потоковой передачей.
Подробную документацию и примеры см. в разделе API дублирования рабочих столов.