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


Дублирование рабочего стола

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 дублирования рабочих столов.