Compartir a través de


Compatibilidad con la pantalla inalámbrica miracast

La compatibilidad con el estándar de pantalla inalámbrica Miracast se introdujo en Windows 8.1 (WDDM 1.3).

Compatibilidad con Miracast a partir de Windows 10

A partir de Windows 10 (WDDM 2.0), el sistema operativo se incluye con una pila de Miracast integrada que puede funcionar en cualquier GPU. Para obtener información sobre la pila de Microsoft Miracast y los requisitos de controladores y hardware para admitir pantallas de Miracast a partir de Windows 10, consulte la siguiente documentación:

Los desarrolladores de controladores ya no deben implementar una pila personalizada de Miracast. Microsoft podría quitar la compatibilidad con pilas de Miracast personalizadas en una versión futura de Windows.

Compatibilidad con Miracast en Windows 8.1

Opcionalmente, los controladores WDDM 1.3 podían admitir Miracast a través de las DDI de Miracast proporcionadas en Windows 8.1. El resto de este artículo y sus artículos relacionados describen cómo proporcionar esa compatibilidad.

Interfaces de controlador de dispositivo en modo de usuario (DDIs)

Funciones de devolución de llamada de pantalla inalámbrica llamadas por los controladores en modo de usuario de Miracast

En la tabla siguiente se enumeran las funciones del modo de usuario de pantalla inalámbrica (Miracast) que implementa el sistema operativo. Solo los controladores del modo de usuario de Miracast de Windows 8.1 pueden llamar a estas funciones. Los punteros a las funciones de devolución de llamada de visualización de Miracast se devuelven en una estructura de MIRACAST_CALLBACKS .

Función Descripción
PFN_GET_NEXT_CHUNK_DATA Proporciona información sobre el siguiente fragmento de codificación de Miracast que se informó al subsistema del kernel de gráficos de DirectX cuando se DXGK_INTERRUPT_MIRACAST_CHUNK_PROCESSING_COMPLETE el tipo de interrupción de DXGK_INTERRUPT_TYPE .
PFN_MIRACAST_IO_CONTROL Lo llama el controlador de pantalla en modo de usuario para enviar al controlador de miniporte de pantalla en modo kernel una solicitud de control de E/S sincrónica.
PFN_REGISTER_DATARATE_NOTIFICATIONS Lo llama el controlador en modo de usuario para registrarse en el sistema operativo para recibir notificaciones de calidad de servicio (QoS) de red y el ancho de banda de red actual de la conexión miracast.
PFN_REPORT_SESSION_STATUS Llamado por el controlador de pantalla en modo de usuario para notificar el estado de la sesión conectada de Miracast actual.
PFN_REPORT_STATISTIC Llamado por el controlador de pantalla en modo de usuario para informar de las estadísticas del vínculo de Miracast al sistema operativo.

Funciones de pantalla inalámbrica implementadas por controladores en modo de usuario de Miracast de Windows 8.1

En la tabla siguiente se enumeran las funciones de visualización inalámbrica (Miracast) que debe implementar un controlador en modo de usuario de Miracast de Windows 8.1. Este tipo de controlador se ejecuta en un archivo DLL independiente.

En respuesta a una llamada del sistema operativo a la función QueryMiracastDriverInterface , el controlador del modo de usuario de Miracast debe proporcionar punteros a estas funciones en la estructura de MIRACAST_DRIVER_INTERFACE . La excepción es pfnDataRateNotify, que tiene un puntero declarado en RegisterForDataRateNotifications.

Función Descripción
PFN_CREATE_MIRACAST_CONTEXT Llamado por el sistema operativo para crear un contexto miracast en modo de usuario.
PFN_DESTROY_MIRACAST_CONTEXT Llamado por el sistema operativo para destruir un contexto miracast en modo de usuario.
PFN_HANDLE_KMD_MESSAGE Lo llama el sistema operativo para controlar el mensaje asincrónico en modo kernel que recibe el controlador en modo de usuario de Miracast cuando el controlador de miniporte de pantalla llama a la función DxgkCbMiracastSendMessage .
PFN_DATARATE_NOTIFICATION Llamado por el sistema operativo para notificar al controlador del modo de usuario de Miracast que cambió la velocidad de bits del vínculo de red de Miracast. Esta función se registra con el sistema operativo cuando se llama a la función RegisterForDataRateNotifications .
QUERY_MIRACAST_DRIVER_INTERFACE Llamado por el sistema operativo para consultar la interfaz del controlador del modo de usuario de Miracast, MIRACAST_DRIVER_INTERFACE.
PFN_START_MIRACAST_SESSION Llamado por el sistema operativo para iniciar una sesión conectada a Miracast.
PFN_STOP_MIRACAST_SESSION Lo llama el sistema operativo para iniciar una sesión conectada a Miracast iniciada anteriormente por una llamada a la función StartMiracastSession .

En la tabla siguiente se enumeran las estructuras y enumeraciones en modo de usuario que se usan con interfaces de controlador de dispositivo de visualización (DDIs) de Miracast para Windows 8.1.

Struct/Enum Descripción
MIRACAST_CALLBACKS Contiene punteros a funciones de devolución de llamada en tiempo de ejecución de pantalla inalámbrica (Miracast) a las que puede llamar el controlador del modo de usuario de Miracast.
MIRACAST_CHUNK_DATA Contiene datos de fragmentos de codificación que se usarán cuando un controlador en modo de usuario llama a la función GetNextChunkData de la pantalla inalámbrica (Miracast).
MIRACAST_CHUNK_ID Almacena información que identifica un fragmento de codificación de pantalla inalámbrica (Miracast).
MIRACAST_CHUNK_INFO Contiene información sobre un fragmento de codificación de pantalla inalámbrica (Miracast) especificado.
MIRACAST_CHUNK_TYPE Especifica los tipos de información de fragmento de pantalla inalámbrica (Miracast) que se va a procesar.
MIRACAST_DATARATE_STATS Contiene información usada en la función pfnDataRateNotify de la pantalla inalámbrica (Miracast) sobre la velocidad de bits del codificador de audio/vídeo y los fotogramas Wi-Fi con errores o reintentados.
MIRACAST_DRIVER_INTERFACE Contiene punteros a funciones de visualización inalámbrica (Miracast) que implementa el controlador en modo usuario de Miracast.
MIRACAST_PROTOCOL_EVENT Especifica los tipos de evento de protocolo de pantalla inalámbrica (Miracast) que debe notificar el controlador de pantalla en modo de usuario.
MIRACAST_SESSION_INFO Contiene información sobre una sesión conectada de pantalla inalámbrica (Miracast).
MIRACAST_STATISTIC_DATA Contiene datos de estadísticas de Miracast que el controlador de visualización en modo de usuario informa al sistema operativo.
MIRACAST_STATISTIC_TYPE Especifica los tipos de datos de estadísticas de Miracast que genera el controlador de visualización en modo de usuario.
MIRACAST_STATUS Especifica los tipos de estado que usa el controlador de visualización en modo de usuario para notificar el estado de conexión de Miracast.
MIRACAST_WFD_CONNECTION_STATS Contiene información de velocidad de bits en la conexión Wi-Fi Direct.

Las siguientes estructuras y enumeraciones en modo de usuario admiten pantallas de Miracast y eran nuevas o actualizadas para Windows 8.1:

  • DISPLAYCONFIG_TARGET_BASE_TYPE (nuevo)
  • DISPLAYCONFIG_VIDEO_SIGNAL_INFO (se agregó la estructura secundaria AdditionalSignalInfo)
  • DISPLAYCONFIG_DEVICE_INFO_TYPE (DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE constante agregada)
  • D3DKMDT_VIDEO_SIGNAL_INFO (se agregó la estructura secundaria AdditionalSignalInfo)
  • DISPLAYCONFIG_DEVICE_INFO_TYPE (DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE constante agregada)

DDIs en modo kernel

Interfaz de devolución de llamada de pantalla inalámbrica (Miracast)

La interfaz de devolución de llamada de visualización de Miracast contiene funciones que el subsistema de kernel gráficos de DirectX implementa para admitir pantallas inalámbricas (Miracast) en Windows 8.1.

En la tabla siguiente se enumeran estas funciones en modo kernel, a las que llama WDDM 1.3 para mostrar controladores de miniport:

Función Descripción
DXGKCB_MIRACAST_SEND_MESSAGE Envía un mensaje asincrónico al controlador de pantalla en modo de usuario.
DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK Se llama en modo kernel cuando se completa o cancela el mensaje enviado al controlador en modo de usuario con una llamada a la función DxgkCbMiracastSendMessage .
DXGKCB_MIRACAST_REPORT_CHUNK_INFO Lo llama el controlador de minipuerto para mostrar información sobre un fragmento de codificación.

El controlador de minipuerto de pantalla debe rellenar punteros a estas funciones en la estructura DXGK_MIRACAST_DISPLAY_CALLBACKS .

Interfaz de pantalla inalámbrica (Miracast)

En la tabla siguiente se enumeran las funciones en modo kernel que muestran controladores de miniporte implementan para admitir pantallas inalámbricas (Miracast) en Windows 8.1. Los punteros a las funciones de interfaz miracast se devuelven en una estructura de DXGK_MIRACAST_INTERFACE .

Función Descripción
DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK Se llama en modo kernel cuando se completa o cancela el mensaje enviado al controlador en modo de usuario con una llamada a la función DxgkCbMiracastSendMessage .
DXGKDDI_MIRACAST_CREATE_CONTEXT Crea un contexto en modo kernel para un dispositivo Miracast.
DXGKDDI_MIRACAST_DESTROY_CONTEXT Destruye una instancia de un dispositivo Miracast.
DXGKDDI_MIRACAST_HANDLE_IO_CONTROL Lo llama el sistema operativo para solicitar que el controlador de miniporte para mostrar procese una solicitud de control de E/S sincrónica en respuesta a una llamada de controlador de pantalla en modo de usuario a la función MiracastIoControl.
DXGKDDI_MIRACAST_QUERY_CAPS Consulta las funcionalidades de Miracast del adaptador de pantalla actual. El sistema operativo llama a esta función solo cuando se inicia por primera vez el adaptador de pantalla y, a continuación, almacena las funcionalidades que se devuelven.

Estas estructuras y enumeraciones en modo kernel admiten pantallas de Miracast y eran nuevas o actualizadas para Windows 8.1:

  • DXGK_MIRACAST_CAPS
  • D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY (D3DKMDT_VOT_MIRACAST constante agregada)
  • D3DKMDT_VIDEO_SIGNAL_INFO (se agregó la estructura secundaria AdditionalSignalInfo)
  • DXGK_CHILD_STATUS (se ha agregado la estructura secundaria miracast)
  • DXGK_CHILD_STATUS_TYPE (constante StatusMiracast agregada)
  • DXGKARGCB_NOTIFY_INTERRUPT_DATA (se ha agregado la estructura secundaria MiracastEncodeChunkCompleted)