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


Поддержка беспроводного дисплея Miracast

Поддержка стандарта беспроводного дисплея Miracast появилась в Windows 8.1 (WDDM 1.3).

Поддержка Miracast, начиная с Windows 10

Начиная с Windows 10 (WDDM 2.0), операционная система поставляется со встроенным стеком Miracast, который может работать на любом GPU. Сведения о стеке Microsoft Miracast и требованиях к драйверам и оборудованию для поддержки дисплеев Miracast начиная с Windows 10 см. в следующей документации:

Разработчики драйверов больше не должны реализовывать пользовательский стек Miracast. Корпорация Майкрософт может удалить поддержку пользовательских стеков Miracast в будущей версии Windows.

Поддержка Miracast в Windows 8.1

Драйверы WDDM 1.3 могут при необходимости поддерживать Miracast через DDIs Miracast, предоставляемые в этом выпуске. В остальной части этой статьи и связанных с ней статьях описывается, как обеспечить эту поддержку.

Интерфейсы драйвера устройства в пользовательском режиме (DIS)

Функции обратного вызова беспроводного дисплея, вызываемые драйверами пользовательского режима Miracast

В следующей таблице перечислены функции пользовательского режима беспроводного дисплея (Miracast), которые реализует операционная система. Вызывать эти функции могут только драйверы пользовательского режима Miracast Windows 8.1. Указатели на функции обратного вызова отображения Miracast возвращаются в MIRACAST_CALLBACKS структуре.

Функция Описание
PFN_GET_NEXT_CHUNK_DATA Предоставляет сведения о следующем блоке кодирования Miracast, который был передан подсистеме ядра графики DirectX, когда тип прерывания DXGK_INTERRUPT_TYPE DXGK_INTERRUPT_MIRACAST_CHUNK_PROCESSING_COMPLETE.
PFN_MIRACAST_IO_CONTROL Вызывается драйвером отображения пользовательского режима для отправки драйверу минипорта режима ядра синхронного запроса управления вводом-выводом.
PFN_REGISTER_DATARATE_NOTIFICATIONS Вызывается драйвером пользовательского режима для регистрации в операционной системе для получения уведомлений о качестве обслуживания сети (QoS) и текущей пропускной способности подключения Miracast.
PFN_REPORT_SESSION_STATUS Вызывается драйвером отображения пользовательского режима, чтобы сообщить о состоянии текущего сеанса, подключенного к Miracast.
PFN_REPORT_STATISTIC Вызывается драйвером отображения пользовательского режима для передачи статистики по ссылке Miracast операционной системе.

Функции беспроводного дисплея, реализованные драйверами пользовательского режима Windows 8.1 Miracast

В следующей таблице перечислены функции беспроводного дисплея (Miracast), которые должен реализовать драйвер пользовательского режима Windows 8.1 Miracast. Этот тип драйвера выполняется в автономной библиотеке DLL.

В ответ на вызов операционной системы функции QueryMiracastDriverInterface драйвер пользовательского режима Miracast должен предоставлять указатели на эти функции в структуре MIRACAST_DRIVER_INTERFACE . Исключением является pfnDataRateNotify, который имеет указатель, объявленный в RegisterForDataRateNotifications.

Функция Описание
PFN_CREATE_MIRACAST_CONTEXT Вызывается операционной системой для создания контекста Miracast в пользовательском режиме.
PFN_DESTROY_MIRACAST_CONTEXT Вызывается операционной системой для уничтожения контекста Miracast в пользовательском режиме.
PFN_HANDLE_KMD_MESSAGE Вызывается операционной системой для обработки асинхронного сообщения режима ядра, которое получает драйвер пользовательского режима Miracast, когда драйвер мини-порта дисплея вызывает функцию DxgkCbMiracastSendMessage .
PFN_DATARATE_NOTIFICATION Вызывается операционной системой для уведомления драйвера в пользовательском режиме Miracast о том, что скорость передачи данных в сети Miracast изменилась. Эта функция регистрируется в операционной системе при вызове функции RegisterForDataRateNotifications .
QUERY_MIRACAST_DRIVER_INTERFACE Вызывается операционной системой для запроса интерфейса драйвера в пользовательском режиме Miracast , MIRACAST_DRIVER_INTERFACE.
PFN_START_MIRACAST_SESSION Вызывается операционной системой для запуска сеанса, подключенного к Miracast.
PFN_STOP_MIRACAST_SESSION Вызывается операционной системой для запуска сеанса, подключенного к Miracast, который ранее был запущен вызовом функции StartMiracastSession .

В следующей таблице перечислены структуры и перечисления в пользовательском режиме, которые используются с Windows 8.1 интерфейсами драйвера устройств отображения Miracast.

Struct/Enum Описание
MIRACAST_CALLBACKS Содержит указатели на функции обратного вызова среды выполнения беспроводного дисплея (Miracast), которые может вызывать драйвер пользовательского режима Miracast.
MIRACAST_CHUNK_DATA Содержит данные блока кодирования, которые используются, когда драйвер пользовательского режима вызывает функцию GetNextChunkData беспроводного дисплея (Miracast).
MIRACAST_CHUNK_ID Хранит сведения, определяющие блок кодирования беспроводного дисплея (Miracast).
MIRACAST_CHUNK_INFO Содержит сведения об указанном блоке кодирования беспроводного дисплея (Miracast).
MIRACAST_CHUNK_TYPE Указывает типы обрабатываемых сведений о фрагментах беспроводного дисплея (Miracast).
MIRACAST_DATARATE_STATS Содержит сведения, используемые в функции pfnDataRateNotify беспроводного дисплея (Miracast) о скорости передачи аудио- и видеокодировщика, а также о сбое или повторном выполнении Wi-Fi кадрах.
MIRACAST_DRIVER_INTERFACE Содержит указатели на функции беспроводного дисплея (Miracast), которые реализует драйвер пользовательского режима Miracast.
MIRACAST_PROTOCOL_EVENT Указывает типы событий протокола беспроводного дисплея (Miracast), которые должен сообщить драйверу отображения пользовательского режима.
MIRACAST_SESSION_INFO Содержит сведения о сеансе, подключенном к беспроводному дисплею (Miracast).
MIRACAST_STATISTIC_DATA Содержит статистические данные Miracast, которые отображает драйвер в пользовательском режиме для операционной системы.
MIRACAST_STATISTIC_TYPE Указывает типы статистических данных Miracast, создаваемые драйвером отображения пользовательского режима.
MIRACAST_STATUS Указывает типы состояния, которые драйвер отображения пользовательского режима использует для сообщения о состоянии подключения Miracast.
MIRACAST_WFD_CONNECTION_STATS Содержит сведения о скорости передачи данных для прямого подключения Wi-Fi.

Следующие структуры и перечисления в пользовательском режиме поддерживают отображение Miracast и были обновлены для Windows 8.1:

DDIs в режиме ядра

Интерфейс обратного вызова дисплея Wireless Display (Miracast)

Интерфейс обратного вызова дисплея Miracast содержит функции, которые подсистема ядра графики DirectX реализует для поддержки беспроводных дисплеев (Miracast) в Windows 8.1.

В следующей таблице перечислены функции режима ядра, которые вызываются драйверами мини-портов дисплея WDDM 1.3:

Функция Описание
DXGKCB_MIRACAST_SEND_MESSAGE Отправляет асинхронное сообщение драйверу отображения пользовательского режима.
DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK Вызывается в режиме ядра, когда сообщение, отправленное драйверу пользовательского режима с вызовом функции DxgkCbMiracastSendMessage , завершено или отменено.
DXGKCB_MIRACAST_REPORT_CHUNK_INFO Вызывается драйвером минипорта дисплея для передачи сведений о блоке кодирования.

Драйвер мини-порта дисплея должен заполнять указатели на эти функции в структуре DXGK_MIRACAST_DISPLAY_CALLBACKS .

Интерфейс беспроводного дисплея (Miracast)

В следующей таблице перечислены функции режима ядра, которые отображают драйверы минипорта, реализуемые для поддержки беспроводных дисплеев (Miracast) в Windows 8.1. Указатели на функции интерфейса Miracast возвращаются в DXGK_MIRACAST_INTERFACE структуре.

Функция Описание
DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK Вызывается в режиме ядра, когда сообщение, отправленное драйверу пользовательского режима с вызовом функции DxgkCbMiracastSendMessage, завершено или отменено.
DXGKDDI_MIRACAST_CREATE_CONTEXT Создает контекст режима ядра для устройства Miracast.
DXGKDDI_MIRACAST_DESTROY_CONTEXT Уничтожает экземпляр устройства Miracast.
DXGKDDI_MIRACAST_HANDLE_IO_CONTROL Вызывается операционной системой, чтобы запросить, чтобы драйвер минипорта дисплея обрабатывал синхронный запрос управления вводом-выводом в ответ на вызов драйвера дисплея пользовательского режима функции MiracastIoControl.
DXGKDDI_MIRACAST_QUERY_CAPS Запрашивает возможности Miracast текущего видеоадаптера. Операционная система вызывает эту функцию только при первом запуске видеоадаптера, а затем сохраняет возвращаемые возможности.

Эти структуры и перечисления в режиме ядра поддерживают отображение Miracast и были обновлены для Windows 8.1: