視訊呈現網路 (VidPN) 管理員會使用 VidPN 物件來維護視訊呈現來源、視訊呈現目標和顯示模式之間關聯的相關資訊。 如需詳細資訊,請參閱 視訊呈現網路簡介 主題。
VidPN 物件
VidPN 物件包含下列子物件。
拓撲學
來源模式設定
目標模式設定
監視來源模式設定
監聽頻率範圍設定
監視器描述子集
路徑
來源
標的
來源模式
目標模式
監視來源模式
下圖說明 VidPN 物件及其子物件。
前面的圖表展示特定關聯是一對一、一對多、多對一或多對多。 例如,此圖顯示來源可以屬於多個路徑,但目標只能屬於一個路徑。
圖表中的藍色物件是透過控點和介面存取的,灰色物件是透過結構指標存取的。 此內容中的介面是包含函式指標的結構。 例如, DXGK_VIDPNTOPOLOGY_INTERFACE 結構包含顯示迷你埠驅動程式呼叫的函式指標 (由 VidPN 管理員實作) ,以檢查和變更拓撲物件。 當顯示迷你埠驅動程式呼叫其中任何一個函式時,它必須提供拓撲物件的控制碼。 下表列出用來存取 VidPN 物件及其子物件的控制碼、介面和指標資料類型。
| 物體 | 存取方式和資料類型 |
|---|---|
| VidPN(VidPN 接口) | 通過手柄和界面訪問。 D3DKMDT_HVIDPN、 DXGK_VIDPN_INTERFACE |
| 拓撲 (VidPN 拓撲介面) | 通過手柄和界面訪問。 D3DKMDT_HVIDPNTOPOLOGY、 DXGK_VIDPNTOPOLOGY_INTERFACE |
| 來源模式集 (VidPN 來源模式集介面) | 通過手柄和界面訪問。 D3DKMDT_HVIDPNSOURCEMODESET、 DXGK_VIDPNSOURCEMODESET_INTERFACE |
| 設定目標模式(VidPN 目標模式設定介面) | 通過控制柄和介面存取。 D3DKMDT_HVIDPNTARGETMODESET,DXGK_VIDPNTARGETMODESET_INTERFACE |
| 設定監控來源模式 | 通過手柄和界面訪問。 D3DKMDT_HMONITORSOURCEMODESET、 DXGK_MONITORSOURCEMODESET_INTERFACE |
| 路徑 | 透過結構指標存取。 D3DKMDT_VIDPN_PRESENT_PATH |
| 來源 | 透過結構指標存取。 D3DKMDT_VIDEO_PRESENT_SOURCE |
| 標的 | 透過結構指標存取。 D3DKMDT_VIDEO_PRESENT_TARGET |
| 來源模式 | 透過結構指標存取。 D3DKMDT_VIDPN_SOURCE_MODE |
| 目標模式 | 透過結構指標存取。 D3DKMDT_VIDPN_TARGET_MODE |
| 監視來源模式 | 透過結構指標存取。 D3DKMDT_MONITOR_SOURCE_MODE |
| 監聽頻率範圍設定 | 透過結構指標存取。 [DXGK_MONITORFREQUENCYRANGESET_INTERFACE |
| 監視器描述子集 | 透過結構指標存取。 [DXGK_MONITORDESCRIPTORSET_INTERFACE |
VidPN 管理器
VidPN 管理員是 DirectX 圖形核心子系統的其中一個元件,會與顯示迷你埠驅動程式合作,以建置和維護 VidPN。 下列步驟描述顯示迷你埠驅動程式如何取得 VidPN 物件的控制碼和介面。
在初始化期間,DirectX 圖形核心子系統會呼叫顯示迷你埠驅動程式的 DxgkDdiStartDevice 函式。 該呼叫會為顯示迷你埠驅動程式提供 DXGKRNL_INTERFACE 結構,其中包含 DirectX 圖形核心子系統所實作函式的指標。 其中一個函式是 DxgkCbQueryVidPnInterface。
在某些時候,VidPN 管理員需要顯示迷你埠驅動程式的協助,因此它會呼叫下列其中一個函式,為顯示迷你埠驅動程式提供 VidPN 物件的控制碼:
顯示微型埠驅動程式會將步驟 2 中取得的控制碼傳遞至 DxgkCbQueryVidPnInterface,以返回 DXGK_VIDPN_INTERFACE 結構的指標。
顯示迷你埠驅動程式取得 VidPN 物件的控制碼和介面之後,可以根據需求取得主要子物件(包括拓撲、來源模式集、目標模式集和監視來源模式集)的控制碼和介面。 例如,顯示迷你埠驅動程式可以呼叫 pfnGetTopology (VidPN 介面中的其中一個函式) ,以取得 VidPN 拓撲物件的控制碼,以及 DXGK_VIDPNTOPOLOGY_INTERFACE 結構的指標。
下列函式 (在 VidPN 介面中) 提供 VidPN 物件主要子物件的控制碼和介面。
請注意,上述清單中的兩個函式具有釋放 VidPN 子物件的對應函式。
顯示迷你埠驅動程式取得其中一個 VidPN 主要子物件的控制碼和介面之後,它可以呼叫介面函式來取得與子物件相關的物件描述元。 例如,假設有句柄和拓撲物件的介面,顯示迷你埠驅動程式可以執行下列步驟,以取得拓撲中所有路徑的描述元。
-
呼叫 VidPN 拓撲介面的 pfnAcquireFirstPathInfo 函式,以取得描述拓撲中第一個路徑的 D3DKMDT_VIDPN_PRESENT_PATH 結構指標。
-
重複呼叫 pfnAcquireNextPathInfo 函式,以取得描述拓撲中其餘路徑的D3DKMDT_VIDPN_PRESENT_PATH結構的指標。
同樣地,顯示迷你埠驅動程式可以呼叫下列任何模式集介面的 pfnAcquireFirstModeInfo 和 pfnAcquireNextModeInfo 函式,以取得模式集中模式的描述元。
請注意, DXGK_VIDPNSOURCEMODESET_INTERFACE 介面沒有從來源模式集中移除模式的功能。 當顯示迷你埠驅動程式需要更新來源模式集時,它不會藉由新增和移除模式來變更現有的模式集。 相反地,它會建立新的模式集來取代舊的模式集。 必須更新模式集的函式範例是顯示迷你埠驅動程式的 DxgkDdiEnumVidPnCofuncModality 函式。 更新來源模式集所涉及的步驟如下:
呼叫 DXGK_VIDPNSOURCEMODESET_INTERFACE 介面的 pfnCreateNewModeInfo ,以取得 D3DKMDT_VIDPN_SOURCE_MODE 結構的指標 (由 VidPN 管理員配置) 。
重複呼叫 pfnAddMode ,將模式新增至來源模式集。
呼叫DXGK_VIDPN_INTERFACE的 pfnAssignSourceModeSet 函式,將新的模式集指派給特定的視訊呈現來源。 新的來源模式集會取代目前指派給該來源的來源模式集。
更新目標模式集與更新來源模式集類似。 DXGK_VIDPNTARGETMODESET_INTERFACE介面具有以下功能:
-
用於建立新目標模式集的 pfnCreateNewModeInfo 函式,以及用於將模式新增至集的 pfnAddMode 函式。
沒有介面 (函式集) 來取得屬於特定路徑的來源和目標。 顯示迷你埠驅動程式可以檢查代表路徑之 D3DKMDT_VIDPN_PRESENT_PATH 結構的 VidPnSourceId 和 VidPnTargetId 成員,以判斷哪個來源和目標屬於特定路徑。
另請參閱
判斷顯示器配接器 是否支援 VidPN