Поддержка беспроводного дисплея Miracast
Поддержка стандарта беспроводного дисплея Miracast появилась в Windows 8.1 (WDDM 1.3).
Поддержка Miracast начиная с Windows 10
Начиная с Windows 10 (WDDM 2.0), операционная система поставляется со встроенным стеком Miracast, который может работать на любом GPU. Сведения о стеке Microsoft Miracast и требованиях драйверов и оборудования для поддержки экранов Miracast, начиная с Windows 10, см. в следующей документации:
Создание лучших в классе беспроводных проекционных решений с помощью Windows 10
Соответствующая документация по WHLK в Device.Graphics.WDDM13.DisplayRender.WirelessDisplay
Разработчики драйверов больше не должны реализовывать пользовательский стек Miracast. Корпорация Майкрософт может удалить поддержку пользовательских стеков Miracast в будущей версии Windows.
Поддержка Miracast в Windows 8.1
Драйверы WDDM 1.3 могут поддерживать Miracast через DDIs Miracast, предоставляемые в Windows 8.1. Остальная часть этой статьи и ее связанные статьи описывают, как обеспечить эту поддержку.
Интерфейсы драйверов устройств в режиме пользователя (DDIs)
Функции обратного вызова беспроводного дисплея, вызываемые драйверами пользовательского режима Miracast
В следующей таблице перечислены функции пользовательского режима беспроводного дисплея (Miracast), которые реализует операционная система. Эти функции могут вызывать только драйверы пользовательского режима Miracast для Windows 8.1. Указатели на функции обратного вызова Miracast возвращаются в MIRACAST_CALLBACKS структуре.
Function | Description |
---|---|
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 connected. |
PFN_REPORT_STATISTIC | Вызывается драйвером отображения пользовательского режима, чтобы сообщить статистику ссылки Miracast на операционную систему. |
Функции беспроводного отображения, реализованные драйверами пользовательского режима Windows 8.1 Miracast
В следующей таблице перечислены функции беспроводного дисплея (Miracast), которые должен реализовать драйвер пользовательского режима Windows 8.1 Miracast. Этот тип драйвера выполняется в автономной библиотеке DLL.
В ответ на вызов операционной системы функции QueryMiracastDriverInterface драйвер пользовательского режима Miracast должен предоставить указатели на эти функции в структуре MIRACAST_DRIVER_INTERFACE . Исключением является pfnDataRateNotify, который имеет указатель, объявленный в RegisterForDataRateNotifications.
Function | Description |
---|---|
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, отображают интерфейсы драйверов устройств (DDIs).
Struct/Enum | Description |
---|---|
MIRACAST_CALLBACKS | Содержит указатели на функции обратного вызова среды выполнения беспроводного дисплея (Miracast), которые может вызывать драйвер пользовательского режима Miracast. |
MIRACAST_CHUNK_DATA | Содержит кодирование данных блока для использования при вызове функции GetNextChunkData в драйвере пользовательского режима. |
MIRACAST_CHUNK_ID | Хранит сведения, определяющие блок кодирования беспроводного дисплея (Miracast). |
MIRACAST_CHUNK_INFO | Содержит сведения о заданном блоке кодирования беспроводного дисплея (Miracast). |
MIRACAST_CHUNK_TYPE | Указывает типы данных блока беспроводного дисплея (Miracast), которые должны обрабатываться. |
MIRACAST_DATARATE_STATS | Содержит сведения, используемые в функции pfnDataRateNotify для скорости передачи битов аудио-видеокодировщика и неудачных или повторных кадров 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 Direct. |
Следующие структуры и перечисления в пользовательском режиме поддерживают отображение Miracast и были обновлены для Windows 8.1:
- DISPLAYCONFIG_TARGET_BASE_TYPE (новое)
- DISPLAYCONFIG_VIDEO_SIGNAL_INFO (добавлена дочерняя структура AdditionalSignalInfo)
- DISPLAYCONFIG_DEVICE_INFO_TYPE (добавлена константная DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE)
- D3DKMDT_VIDEO_SIGNAL_INFO (добавлена дочерняя структура AdditionalSignalInfo)
- DISPLAYCONFIG_DEVICE_INFO_TYPE (добавлена константная DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE)
DDIs в режиме ядра
Интерфейс обратного вызова беспроводного дисплея (Miracast)
Интерфейс обратного вызова Miracast содержит функции, которые подсистема графического ядра DirectX реализует для поддержки беспроводных (Miracast) дисплеев в Windows 8.1.
В следующей таблице перечислены эти функции в режиме ядра, которые вызываются драйверами мини-порта WDDM 1.3:
Function | Description |
---|---|
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 структуре.
Function | Description |
---|---|
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:
- DXGK_MIRACAST_CAPS
- D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY (добавлена константа D3DKMDT_VOT_MIRACAST)
- D3DKMDT_VIDEO_SIGNAL_INFO (добавлена дочерняя структура AdditionalSignalInfo)
- DXGK_CHILD_STATUS (добавлена дочерняя структура Miracast)
- DXGK_CHILD_STATUS_TYPE (добавлена константа StatusMiracast)
- DXGKARGCB_NOTIFY_INTERRUPT_DATA (добавлена дочерняя структура MiracastEncodeChunkCompleted)