Suporte a tela sem fio Miracast

O suporte para o padrão de exibição sem fio Miracast foi introduzido no Windows 8.1 (WDDM 1.3).

Suporte a Miracast a partir do Windows 10

A partir do Windows 10 (WDDM 2.0), o sistema operacional é fornecido com uma pilha Miracast integrada que pode funcionar em qualquer GPU. Para obter informações sobre a pilha do Microsoft Miracast e os requisitos de drivers e hardware para oferecer suporte a monitores Miracast a partir do Windows 10, consulte a seguinte documentação:

Os desenvolvedores de drivers não devem mais implementar uma pilha Miracast personalizada. A Microsoft pode remover o suporte para pilhas Miracast personalizadas em uma versão futura do Windows.

Suporte a Miracast no Windows 8.1

Os drivers WDDM 1.3 podem, opcionalmente, oferecer suporte a Miracast por meio das DDIs Miracast fornecidas no Windows 8.1. O restante deste artigo e seus artigos relacionados descrevem como fornecer esse suporte.

Interfaces de driver de dispositivo (DDIs) de modo de usuário

Funções de retorno de chamada de exibição sem fio chamadas por drivers de modo de usuário Miracast

A tabela a seguir lista as funções de modo de usuário de exibição sem fio (Miracast) que o sistema operacional implementa. Somente os drivers de modo de usuário Miracast do Windows 8.1 podem chamar essas funções. Os ponteiros para as funções de retorno de chamada de exibição Miracast são retornados em uma estrutura MIRACAST_CALLBACKS .

Função Descrição
PFN_GET_NEXT_CHUNK_DATA Fornece informações sobre o próximo bloco de codificação Miracast que foi relatado ao subsistema de kernel de gráficos DirectX quando o tipo de interrupção DXGK_INTERRUPT_TYPE é DXGK_INTERRUPT_MIRACAST_CHUNK_PROCESSING_COMPLETE.
PFN_MIRACAST_IO_CONTROL Chamado pelo driver de exibição de modo de usuário para enviar ao driver de miniporta de exibição de modo kernel uma solicitação de controle de E/S síncrona.
PFN_REGISTER_DATARATE_NOTIFICATIONS Chamado pelo driver de modo de usuário para se registrar no sistema operacional para receber notificações de QoS (qualidade de serviço) de rede e a largura de banda de rede atual da conexão Miracast.
PFN_REPORT_SESSION_STATUS Chamado pelo driver de exibição do modo de usuário para relatar o status da sessão conectada Miracast atual.
PFN_REPORT_STATISTIC Chamado pelo driver de exibição do modo de usuário para relatar as estatísticas do link Miracast para o sistema operacional.

Funções de exibição sem fio implementadas pelos drivers de modo de usuário Miracast do Windows 8.1

A tabela a seguir lista as funções de exibição sem fio (Miracast) que um driver de modo de usuário Miracast do Windows 8.1 deve implementar. Esse tipo de driver é executado em uma DLL autônoma.

Em resposta a uma chamada do sistema operacional para a função QueryMiracastDriverInterface, o driver de modo de usuário Miracast deve fornecer ponteiros para essas funções na estrutura MIRACAST_DRIVER_INTERFACE. A exceção é pfnDataRateNotify, que tem um ponteiro declarado em RegisterForDataRateNotifications.

Função Descrição
PFN_CREATE_MIRACAST_CONTEXT Chamado pelo sistema operacional para criar um contexto Miracast no modo de usuário.
PFN_DESTROY_MIRACAST_CONTEXT Chamado pelo sistema operacional para destruir um contexto Miracast de modo de usuário.
PFN_HANDLE_KMD_MESSAGE Chamado pelo sistema operacional para manipular a mensagem de modo kernel assíncrono que o driver de modo de usuário Miracast recebe quando o driver de miniporta de exibição chama a função DxgkCbMiracastSendMessage .
PFN_DATARATE_NOTIFICATION Chamado pelo sistema operacional para notificar o driver de modo de usuário Miracast que a taxa de bits do link de rede Miracast foi alterada. Essa função é registrada no sistema operacional quando a função RegisterForDataRateNotifications é chamada.
QUERY_MIRACAST_DRIVER_INTERFACE Chamado pelo sistema operacional para consultar a interface do driver de modo de usuário Miracast, MIRACAST_DRIVER_INTERFACE.
PFN_START_MIRACAST_SESSION Chamado pelo sistema operacional para iniciar uma sessão conectada ao Miracast.
PFN_STOP_MIRACAST_SESSION Chamado pelo sistema operacional para iniciar uma sessão conectada Miracast que foi iniciada anteriormente por uma chamada para a função StartMiracastSession .

A tabela a seguir lista as estruturas de modo de usuário e enumerações que são usadas com o Windows 8.1 Miracast display device driver interfaces (DDIs).

Estruturar/Enum Descrição
MIRACAST_CALLBACKS Contém ponteiros para funções de retorno de chamada de tempo de execução de exibição sem fio (Miracast) que o driver de modo de usuário Miracast pode chamar.
MIRACAST_CHUNK_DATA Contém dados de bloco de codificação a serem usados quando um driver de modo de usuário chama a função GetNextChunkData de exibição sem fio (Miracast).
MIRACAST_CHUNK_ID Armazena informações que identificam um bloco de codificação de exibição sem fio (Miracast).
MIRACAST_CHUNK_INFO Contém informações sobre um bloco de codificação de exibição sem fio especificado (Miracast).
MIRACAST_CHUNK_TYPE Especifica os tipos de informações de bloco de exibição sem fio (Miracast) que devem ser processadas.
MIRACAST_DATARATE_STATS Contém informações usadas na função pfnDataRateNotify do monitor sem fio (Miracast) sobre a taxa de bits do codificador de áudio/vídeo e quadros Wi-Fi com falha ou repetidos.
MIRACAST_DRIVER_INTERFACE Contém ponteiros para funções de exibição sem fio (Miracast) que o driver de modo de usuário Miracast implementa.
MIRACAST_PROTOCOL_EVENT Especifica os tipos de evento de protocolo de exibição sem fio (Miracast) que o driver de exibição de modo de usuário deve relatar.
MIRACAST_SESSION_INFO Contém informações sobre uma sessão conectada de exibição sem fio (Miracast).
MIRACAST_STATISTIC_DATA Contém dados de estatísticas Miracast que o driver de exibição do modo de usuário relata ao sistema operacional.
MIRACAST_STATISTIC_TYPE Especifica tipos de dados de estatísticas Miracast gerados pelo driver de exibição no modo de usuário.
MIRACAST_STATUS Especifica os tipos de status que o driver de exibição de modo de usuário usa para relatar o status da conexão Miracast.
MIRACAST_WFD_CONNECTION_STATS Contém informações sobre a taxa de bits na conexão Wi-Fi Direct.

As seguintes estruturas de modo de usuário e enumerações oferecem suporte a exibições Miracast e foram novas ou atualizadas para o Windows 8.1:

  • DISPLAYCONFIG_TARGET_BASE_TYPE (novo)
  • DISPLAYCONFIG_VIDEO_SIGNAL_INFO (estrutura filho AdditionalSignalInfo adicionada)
  • DISPLAYCONFIG_DEVICE_INFO_TYPE (DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE constante adicionada)
  • D3DKMDT_VIDEO_SIGNAL_INFO (estrutura filho AdditionalSignalInfo adicionada)
  • DISPLAYCONFIG_DEVICE_INFO_TYPE (DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE constante adicionada)

DDIs no modo kernel

Interface de retorno de chamada de exibição sem fio (Miracast)

A interface de retorno de chamada de exibição Miracast contém funções que o subsistema de kernel de gráficos DirectX implementa para oferecer suporte a exibições sem fio (Miracast) no Windows 8.1.

A tabela a seguir lista essas funções de modo kernel, que são chamadas pelos drivers de miniporta de exibição WDDM 1.3:

Função Descrição
DXGKCB_MIRACAST_SEND_MESSAGE Envia uma mensagem assíncrona para o driver de exibição de modo de usuário.
DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK Chamado no modo kernel quando a mensagem que foi enviada para o driver de modo de usuário com uma chamada para a função DxgkCbMiracastSendMessage é concluída ou cancelada.
DXGKCB_MIRACAST_REPORT_CHUNK_INFO Chamado pelo driver de miniporta de exibição para relatar informações sobre um bloco de codificação.

O driver de miniporta de exibição deve preencher ponteiros para essas funções na estrutura DXGK_MIRACAST_DISPLAY_CALLBACKS.

Interface de exibição sem fio (Miracast)

A tabela a seguir lista as funções de modo kernel que os drivers de miniporta de exibição implementam para oferecer suporte a exibições sem fio (Miracast) no Windows 8.1. Os ponteiros para as funções da interface Miracast são retornados em uma estrutura DXGK_MIRACAST_INTERFACE .

Função Descrição
DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK Chamado no modo kernel quando a mensagem que foi enviada para o driver de modo de usuário com uma chamada para a função DxgkCbMiracastSendMessage é concluída ou cancelada.
DXGKDDI_MIRACAST_CREATE_CONTEXT Cria um contexto de modo kernel para um dispositivo Miracast.
DXGKDDI_MIRACAST_DESTROY_CONTEXT Destrói uma instância de um dispositivo Miracast.
DXGKDDI_MIRACAST_HANDLE_IO_CONTROL Chamado pelo sistema operacional para solicitar que o driver de miniporta de exibição processe uma solicitação de controle de E/S síncrona em resposta a uma chamada de driver de exibição de modo de usuário para a função MiracastIoControl.
DXGKDDI_MIRACAST_QUERY_CAPS Consulta os recursos de Miracast do adaptador de vídeo atual. O sistema operacional chama essa função somente quando o adaptador de vídeo é iniciado pela primeira vez e, em seguida, armazena os recursos retornados.

Essas estruturas e enumerações de modo kernel oferecem suporte a exibições Miracast e foram novas ou atualizadas para o Windows 8.1:

  • DXGK_MIRACAST_CAPS
  • D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY (D3DKMDT_VOT_MIRACAST constante adicionada)
  • D3DKMDT_VIDEO_SIGNAL_INFO (estrutura filho AdditionalSignalInfo adicionada)
  • DXGK_CHILD_STATUS (estrutura filho Miracast adicionada)
  • DXGK_CHILD_STATUS_TYPE (constante StatusMiracast adicionada)
  • DXGKARGCB_NOTIFY_INTERRUPT_DATA (MiracastEncodeChunkEstrutura filho adicionada)