Supporto della visualizzazione wireless Miracast

Il supporto per lo standard di visualizzazione wireless Miracast è stato introdotto in Windows 8.1 (WDDM 1.3).

Supporto di Miracast a partire da Windows 10

A partire da Windows 10 (WDDM 2.0), il sistema operativo viene fornito con uno stack Miracast predefinito che può funzionare su qualsiasi GPU. Per informazioni sullo stack Microsoft Miracast e sui requisiti dei driver e dell'hardware per supportare le visualizzazioni Miracast a partire da Windows 10, vedere la documentazione seguente:

Gli sviluppatori di driver non devono più implementare uno stack Miracast personalizzato. Microsoft potrebbe rimuovere il supporto per gli stack Miracast personalizzati in una versione futura di Windows.

Supporto di Miracast in Windows 8.1

I driver WDDM 1.3 potrebbero facoltativamente supportare Miracast tramite le DDI Miracast fornite in Windows 8.1. Il resto di questo articolo e gli articoli correlati descrivono come fornire tale supporto.

Interfacce del driver di dispositivo in modalità utente (DDI)

Funzioni di callback di visualizzazione wireless chiamate dai driver in modalità utente Miracast

Nella tabella seguente sono elencate le funzioni in modalità utente Miracast (Wireless Display) implementate dal sistema operativo. Solo i driver in modalità utente miracast di Windows 8.1 possono chiamare queste funzioni. I puntatori alle funzioni di callback di visualizzazione Miracast vengono restituiti in una struttura MIRACAST_CALLBACKS .

Funzione Descrizione
PFN_GET_NEXT_CHUNK_DATA Fornisce informazioni sul successivo blocco di codifica Miracast segnalato al sottosistema kernel della grafica DirectX quando il tipo di interrupt DXGK_INTERRUPT_TYPE è DXGK_INTERRUPT_MIRACAST_CHUNK_PROCESSING_COMPLETE.
PFN_MIRACAST_IO_CONTROL Chiamato dal driver di visualizzazione in modalità utente per inviare il driver miniport in modalità kernel a una richiesta di controllo I/O sincrono.
PFN_REGISTER_DATARATE_NOTIFICATIONS Chiamato dal driver in modalità utente per registrarsi con il sistema operativo per ricevere notifiche di qualità del servizio (QoS) di rete e la larghezza di banda di rete corrente della connessione Miracast.
PFN_REPORT_SESSION_STATUS Chiamato dal driver di visualizzazione in modalità utente per segnalare lo stato della sessione connessa Miracast corrente.
PFN_REPORT_STATISTIC Chiamato dal driver di visualizzazione in modalità utente per segnalare le statistiche del collegamento Miracast al sistema operativo.

Funzioni di visualizzazione wireless implementate dai driver in modalità utente Miracast di Windows 8.1

Nella tabella seguente sono elencate le funzioni di visualizzazione wireless (Miracast) che devono essere implementate da un driver miracast in modalità utente di Windows 8.1. Questo tipo di driver viene eseguito in una DLL autonoma.

In risposta a una chiamata del sistema operativo alla funzione QueryMiracastDriverInterface , il driver miracast in modalità utente deve fornire puntatori a queste funzioni nella struttura MIRACAST_DRIVER_INTERFACE . L'eccezione è pfnDataRateNotify, che ha un puntatore dichiarato in RegisterForDataRateNotifications.

Funzione Descrizione
PFN_CREATE_MIRACAST_CONTEXT Chiamato dal sistema operativo per creare un contesto Miracast in modalità utente.
PFN_DESTROY_MIRACAST_CONTEXT Chiamato dal sistema operativo per distruggere un contesto Miracast in modalità utente.
PFN_HANDLE_KMD_MESSAGE Chiamato dal sistema operativo per gestire il messaggio asincrono in modalità kernel che il driver miracast in modalità utente riceve quando il driver miniport di visualizzazione chiama la funzione DxgkCbMiracastSendMessage .
PFN_DATARATE_NOTIFICATION Chiamato dal sistema operativo per notificare al driver miracast in modalità utente che la velocità in bit del collegamento di rete Miracast è cambiata. Questa funzione viene registrata nel sistema operativo quando viene chiamata la funzione RegisterForDataRateNotifications .
QUERY_MIRACAST_DRIVER_INTERFACE Chiamato dal sistema operativo per eseguire una query sull'interfaccia del driver miracast in modalità utente, MIRACAST_DRIVER_INTERFACE.
PFN_START_MIRACAST_SESSION Chiamato dal sistema operativo per avviare una sessione connessa Miracast.
PFN_STOP_MIRACAST_SESSION Chiamato dal sistema operativo per avviare una sessione connessa Miracast avviata in precedenza da una chiamata alla funzione StartMiracastSession .

Nella tabella seguente sono elencate le strutture e le enumerazioni in modalità utente usate con le interfacce del driver di dispositivo di visualizzazione Miracast di Windows 8.1.

Struct/Enumerazione Descrizione
MIRACAST_CALLBACKS Contiene puntatori alle funzioni di callback di runtime Miracast (Wireless Display) che il driver miracast in modalità utente può chiamare.
MIRACAST_CHUNK_DATA Contiene dati di blocco di codifica da usare quando un driver in modalità utente chiama la funzione GetNextChunkData (Display Wireless) (Miracast).
MIRACAST_CHUNK_ID Archivia le informazioni che identificano un blocco di codifica Miracast (Wireless Display).
MIRACAST_CHUNK_INFO Contiene informazioni su un blocco di codifica Miracast (Wireless Display) specificato.
MIRACAST_CHUNK_TYPE Specifica i tipi di informazioni di blocco di visualizzazione wireless (Miracast) da elaborare.
MIRACAST_DATARATE_STATS Contiene informazioni usate nella funzione pfnDataRateNotify (Miracast) sulla velocità di bit del codificatore audio/video e sui fotogrammi Wi-Fi non riusciti o ripetuti.
MIRACAST_DRIVER_INTERFACE Contiene puntatori alle funzioni di visualizzazione wireless (Miracast) implementate dal driver in modalità utente Miracast.
MIRACAST_PROTOCOL_EVENT Specifica i tipi di evento di protocollo Miracast (Wireless Display) che il driver di visualizzazione in modalità utente deve segnalare.
MIRACAST_SESSION_INFO Contiene informazioni su una sessione connessa Miracast (Wireless Display).
MIRACAST_STATISTIC_DATA Contiene i dati delle statistiche Miracast segnalati dal driver in modalità utente al sistema operativo.Contains Miracast statistics data that the user-mode display driver reports to the operating system.
MIRACAST_STATISTIC_TYPE Specifica i tipi di dati delle statistiche Miracast generati dal driver di visualizzazione in modalità utente.
MIRACAST_STATUS Specifica i tipi di stato usati dal driver di visualizzazione in modalità utente per segnalare lo stato della connessione Miracast.
MIRACAST_WFD_CONNECTION_STATS Contiene informazioni sulla velocità in bit sulla connessione Wi-Fi Diretta.

Le strutture e le enumerazioni in modalità utente seguenti supportano le visualizzazioni Miracast e sono state nuove o aggiornate per Windows 8.1:

  • DISPLAYCONFIG_TARGET_BASE_TYPE (nuovo)
  • DISPLAYCONFIG_VIDEO_SIGNAL_INFO (struttura figlio AdditionalSignalInfo aggiunta)
  • DISPLAYCONFIG_DEVICE_INFO_TYPE (costante DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE aggiunta)
  • D3DKMDT_VIDEO_SIGNAL_INFO (aggiunta della struttura figlio AdditionalSignalInfo)
  • DISPLAYCONFIG_DEVICE_INFO_TYPE (costante DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE aggiunta)

DDI in modalità kernel

Interfaccia di callback dello schermo wireless (Miracast)

L'interfaccia di callback di visualizzazione Miracast contiene funzioni implementate dal sottosistema kernel della grafica DirectX per supportare la visualizzazione wireless (Miracast) in Windows 8.1.

La tabella seguente elenca queste funzioni in modalità kernel, chiamate dai driver miniport WDDM 1.3:

Funzione Descrizione
DXGKCB_MIRACAST_SEND_MESSAGE Invia un messaggio asincrono al driver di visualizzazione in modalità utente.
DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK Chiamato in modalità kernel quando il messaggio inviato al driver in modalità utente con una chiamata alla funzione DxgkCbMiracastSendMessage viene completato o annullato.
DXGKCB_MIRACAST_REPORT_CHUNK_INFO Chiamato dal driver miniport di visualizzazione per segnalare informazioni su un blocco di codifica.

Il driver miniport di visualizzazione deve compilare puntatori a queste funzioni nella struttura DXGK_MIRACAST_DISPLAY_CALLBACKS .

Interfaccia di visualizzazione wireless (Miracast)

La tabella seguente elenca le funzioni in modalità kernel che visualizzano i driver miniport implementati per supportare la visualizzazione wireless (Miracast) in Windows 8.1. I puntatori alle funzioni di interfaccia Miracast vengono restituiti in una struttura DXGK_MIRACAST_INTERFACE .

Funzione Descrizione
DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK Chiamato in modalità kernel quando il messaggio inviato al driver in modalità utente con una chiamata alla funzione DxgkCbMiracastSendMessage viene completato o annullato.
DXGKDDI_MIRACAST_CREATE_CONTEXT Crea un contesto in modalità kernel per un dispositivo Miracast.
DXGKDDI_MIRACAST_DESTROY_CONTEXT Elimina definitivamente un'istanza di un dispositivo Miracast.
DXGKDDI_MIRACAST_HANDLE_IO_CONTROL Chiamato dal sistema operativo per richiedere che il driver miniport di visualizzazione elabori una richiesta di controllo I/O sincrona in risposta a una chiamata del driver di visualizzazione in modalità utente alla funzione MiracastIoControl.
DXGKDDI_MIRACAST_QUERY_CAPS Esegue una query sulle funzionalità Miracast della scheda di visualizzazione corrente. Il sistema operativo chiama questa funzione solo quando la scheda di visualizzazione viene avviata per la prima volta e quindi archivia le funzionalità restituite.

Queste strutture in modalità kernel e le enumerazioni supportano le visualizzazioni Miracast e sono state nuove o aggiornate per Windows 8.1:

  • DXGK_MIRACAST_CAPS
  • D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY (D3DKMDT_VOT_MIRACAST costante aggiunta)
  • D3DKMDT_VIDEO_SIGNAL_INFO (aggiunta della struttura figlio AdditionalSignalInfo)
  • DXGK_CHILD_STATUS (struttura figlio Miracast aggiunta)
  • DXGK_CHILD_STATUS_TYPE (costante StatusMiracast aggiunta)
  • DXGKARGCB_NOTIFY_INTERRUPT_DATA (aggiunta della struttura figlio MiracastEncodeChunkCompleted)