Condividi tramite


Gestione di due configurazioni di monitoraggio

Una configurazione a due monitor genera la finestra di dialogo TMM (Transient Multi-Monitor Manager). Se due destinazioni fanno parte della stessa scheda grafica, TMM eseguirà il mapping dell'origine attualmente mappata a una delle destinazioni a entrambe le destinazioni. Dopo che TMM esegue il mapping, verrà visualizzata la finestra di dialogo TMM. Se le destinazioni si trovano su schede grafiche diverse, la finestra di dialogo TMM verrà visualizzata senza attivare il secondo monitor. In questo caso, la finestra di dialogo TMM non avrà l'opzione per clonare o estendere.

La sequenza seguente mostra l'ordine in cui TMM chiama i metodi IViewHelper ed esegue altre operazioni in questa situazione:

  1. TMM chiama la funzione EnumDisplayDevices per recuperare la configurazione di visualizzazione corrente, che include adattatori, schermi e monitor. Per altre informazioni su EnumDisplayDevices, vedere la documentazione di Microsoft Windows SDK.

  2. TMM confronta la configurazione di visualizzazione con le configurazioni di visualizzazione registrate in precedenza.

  3. Se la configurazione di visualizzazione dispone di uno o due monitor con dati EDID (Extended Display Information Data) non rilevati in precedenza, TMM procede per visualizzare la finestra di dialogo TMM.

  4. Per ogni scheda nella configurazione di visualizzazione, TMM effettua chiamate al metodo IViewHelper::GetConnectedIDs per recuperare tutte le origini nell'adattatore, indipendentemente dal fatto che le origini siano mappate o meno.

  5. TMM effettua chiamate al metodo IViewHelper::GetConnectedIDs per recuperare tutte le destinazioni nell'adapter, indipendentemente dal fatto che le destinazioni siano mappate o meno. Ogni destinazione deve essere connessa ma non deve essere attiva.

  6. Per ogni origine nella scheda grafica, TMM effettua chiamate al metodo IViewHelper::GetActiveTopology per recuperare le destinazioni attive per l'origine.

  7. TMM trova la scheda grafica con un'origine mappata a una destinazione. Questo identificatore di origine è denominato "CloneSource". Se l'adattatore ha due destinazioni, TMM crea una matrice di due voci (ULONG targetArray[2]). TMM posiziona l'identificatore di destinazione esistente come primo elemento e il secondo identificatore di destinazione come secondo elemento.

  8. TMM chiama il metodo IViewHelper::SetActiveTopology(adapterName, CloneSource, 2, targetArray) con i parametri indicati.

  9. TMM chiama il metodo IViewHelper::Commit .

Se viene restituito un risultato di errore da uno dei metodi IViewHelper , il computer non immette la visualizzazione clone e la finestra di dialogo TMM viene visualizzata con le opzioni di sola visualizzazione clone e esterne disabilitate.

Se il computer entra nella visualizzazione clone e l'utente sceglie la visualizzazione estesa dalla finestra di dialogo TMM (e fa clic su OK o Applica), TMM deve disattivare la visualizzazione clone come indicato di seguito:

  1. TMM chiama il metodo IViewHelper::SetActiveTopology(adapterName, CloneSource, 1, targetArray) con i parametri indicati.

  2. TMM chiama il metodo IViewHelper::Commit .

Nella chiamata setActiveTopology precedente il parametro 3 è impostato su 1 e non su 2. In questo caso , SetActiveTopology interpreta targetArray come matrice con un solo elemento. SetActiveTopology disattiva la seconda destinazione e immette una singola visualizzazione. TMM usa quindi la funzione ChangeDisplaySettingsEx per estendere la visualizzazione. Per altre informazioni su ChangeDisplaySettingsEx, vedere la documentazione di Microsoft Windows SDK.

La figura seguente illustra il flusso di operazioni che si verificano quando TMM gestisce la situazione quando viene aggiunto un monitoraggio per creare una configurazione a due monitor.

Diagramma che illustra il processo di aggiunta di un monitoraggio per creare una configurazione a due monitor.