處理兩個監視器組態
雙監視器組態會產生 [暫時性多重監視管理員 (TMM) ] 對話方塊。 如果兩個目標屬於相同的圖形介面卡,TMM 會將目前對應到其中一個目標的來源對應至這兩個目標。 在 TMM 執行對應之後,TMM 對話方塊就會快顯。 如果目標位於不同的圖形介面卡上,TMM 對話方塊將會快顯,而不會啟用第二個監視器。 在此情況下,TMM 對話方塊將無法選擇複製或擴充。
下列順序顯示 TMM 呼叫 IViewHelper 方法並在此情況中執行其他作業的順序:
TMM 會呼叫 EnumDisplayDevices 函式來擷取目前的顯示組態,其中包括配接器、顯示器和監視器。 如需EnumDisplayDevices的詳細資訊,請參閱Microsoft Windows SDK檔。
TMM 會比較顯示組態與先前錄製的顯示組態。
如果顯示組態有一或兩個具有擴充顯示資訊資料的監視器, (EDID) 之前未遇到 TMM,TMM 會繼續顯示 TMM 對話方塊。
針對顯示組態中的每個介面卡,TMM 會呼叫 IViewHelper::GetConnectedIDs 方法,以擷取介面卡上所有來源,不論來源是否對應。
TMM 會呼叫 IViewHelper::GetConnectedIDs 方法來擷取介面卡上的所有目標,不論目標是否對應。 每個目標都必須連線,但不需要是作用中的。
針對圖形配接器中的每個來源,TMM 會呼叫 IViewHelper::GetActiveTopology 方法,以擷取來源的作用中目標。
TMM 會尋找具有對應至目標之來源的圖形配接器。 此來源識別碼稱為 「CloneSource」。如果配接器有兩個目標,TMM 會建立兩個專案的陣列, (ULONG targetArray[2]) 。 TMM 會將現有的目標識別碼放置為第一個專案,並將第二個目標識別碼放置為第二個專案。
TMM 會使用指定的參數呼叫 IViewHelper::SetActiveTopology (adapterName, CloneSource, 2, targetArray) 方法。
TMM 會呼叫 IViewHelper::Commit 方法。
如果從任何 IViewHelper 方法傳回錯誤結果,電腦不會輸入複製檢視,且 TMM 對話方塊會快顯並停用 clone-view 和 external-only options。
如果電腦輸入複製檢視,且使用者從 [TMM] 對話方塊選擇 [延伸檢視] (,然後按一下 [ 確定 ] 或 [ 套 用) ],TMM 必須關閉複製檢視,如下所示:
TMM 會使用指定的參數呼叫 IViewHelper::SetActiveTopology (adapterName, CloneSource, 1, targetArray) 方法。
TMM 會呼叫 IViewHelper::Commit 方法。
在上述 SetActiveTopology 呼叫中,參數三會設定為 1,而不是 2。 在此情況下, SetActiveTopology 會將 targetArray 解譯為具有一個專案的陣列。 SetActiveTopology 會關閉第二個目標,並輸入單一檢視。 接下來,TMM 會使用 ChangeDisplaySettingsEx 函 式來擴充顯示器。 如需ChangeDisplaySettingsEx的詳細資訊,請參閱Microsoft Windows SDK檔。
下圖顯示當 TMM 處理新增監視器以建立雙監視器組態時所發生的作業流程。