Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il framework IddCx (Indirect Display Driver Class eXtension) usa il modello a oggetti UMDF estendibile per rappresentare i vari componenti dei dispositivi di visualizzazione indiretti. Il modello a oggetti UMDF consente l'associazione dell'archiviazione specifica del driver a ogni oggetto IddCx (e quindi UMDF). Per altre informazioni, vedere Modello a oggetti di UMDF.
L'ordine in cui vengono creati gli oggetti IDD è:
- Il driver crea innanzitutto un oggetto IDDCX_ADAPTER .
- Il driver crea quindi un oggetto IDDCX_MONITOR .
- Dopo aver creato gli oggetti IDDCX_ADAPTER e IDDCX_MONITOR , il sistema operativo crea IDDCX_SWAPCHAIN e IDDCX_OPMCTX oggetti e li invia al driver.
Nelle sezioni seguenti vengono forniti altri dettagli su questi oggetti.
IDDCX_ADAPTER
Questo oggetto rappresenta una singola scheda di visualizzazione logica creata dal driver in un processo in due fasi:
- Il driver chiama la funzione di callback IddCxAdapterInitAsync .
- Il sistema operativo chiama il DDI EvtIddCxAdapterInitFinished del driver per completare l'inizializzazione.
Il modello IDD non dispone di un callback esplicito per il distruggi adattatore. Al termine della sequenza di inizializzazione dell'adattatore, l'adattatore è valido fino a quando il dispositivo UMDF passato al momento dell'inizializzazione non viene arrestato. Quando il driver di visualizzazione indiretto (IDD) crea l'adattatore, fornisce informazioni statiche sull'adattatore di visualizzazione indiretto.
Gestione dei dispositivi multifunzione
Nel caso più semplice, esiste una corrispondenza uno-a-uno tra l'oggetto dispositivo UMDF creato dal sottosistema plug and play per il dispositivo di visualizzazione indiretta collegato e l'oggetto IDDCX_ADAPTER creato dall'IDD.
Esistono scenari più complessi in cui un singolo dongle di visualizzazione indiretto contiene più dispositivi plug and play. Ad esempio, una soluzione di visualizzazione indiretta potrebbe avere più funzioni del dispositivo PnP, ad esempio un microfono (driver audio) e una fotocamera (driver video). In tali situazioni, l'IDD è responsabile della creazione di un singolo oggetto IDDCX_ADAPTER per più oggetti dispositivo UMDF creati per ogni dispositivo PnP. Il driver deve considerare i punti seguenti in questo scenario:
- Il IDDCX_ADAPTER deve essere creato solo dopo l'avvio di tutti i dispositivi PnP che costituiscono la soluzione di visualizzazione indiretta.
- Il driver deve passare un singolo WDFDEVICE durante la creazione dell'adattatore, pertanto necessita di una logica per decidere quale dispositivo UMDF passerà.
- Se uno dei dispositivi che costituiscono la scheda di visualizzazione indiretta ha un errore hardware, il driver deve segnalare tutti i dispositivi che costituiscono la scheda come in errore.
IDDCX_MONITOR
Questo oggetto rappresenta un monitor specifico connesso a uno dei connettori nella scheda di visualizzazione indiretta.
Il driver crea l'oggetto monitor in un processo in due fasi:
- Chiama innanzitutto il callback IddCxMonitorCreate per creare l'oggetto IDDCX_MONITOR .
- Chiama quindi il callback IddCxMonitorArrival per completare l'arrivo del monitor.
Quando un monitoraggio è scollegato, il driver chiama il callback IddCxMonitorDeparture per segnalarlo. Questa chiamata fa sì che l'oggetto IDDCX_MONITOR venga eliminato definitivamente. Anche se lo stesso monitor è scollegato e quindi riconnesso, è necessario chiamare nuovamente la sequenza IddCxMonitorDeparture/IddCxMonitorArrival .
Il IDDCX_MONITOR è un elemento figlio dell'oggetto IDDCX_ADAPTER .
IDDCX_SWAPCHAIN
Questo oggetto rappresenta una swapchain che fornisce immagini desktop da visualizzare su un monitor connesso. La swapchain include più buffer per consentire al sistema operativo di comporre l'immagine desktop successiva in un buffer mentre l'IDD accede a un altro buffer. Il IDDCX_SWAPCHAIN è un elemento figlio del IDDCX_MONITOR , quindi è presente una sola porta di scambio assegnata a un determinato monitor in qualsiasi momento.
Il sistema operativo crea ed elimina gli oggetti IDDCX_SWAPCHAIN e li assegna/disassegna ai monitor usando le chiamate EvtIddCxMonitorAssignSwapChain e EvtIddCxMonitorUnassignSwapChain.
IDDCX_OPMCTX
Questo oggetto rappresenta un contesto OPM ( Output Protection Manager ) attivo da un singolo contesto OPM dell'applicazione che l'applicazione può usare per controllare la protezione dell'output in un singolo monitor. Più contesti OPM possono essere attivi contemporaneamente su un determinato monitor. Il sistema operativo chiama il driver per creare e distruggere i contesti OPM utilizzando le chiamate DDI EvtIddCxMonitorOPMCreateProtectedOutput e EvtIddCxMonitorOPMDestroyProtectedOutput del driver.