共用方式為


IddCx 物件

IddCx (間接顯示驅動程式類別 eXtension) 架構會使用可延伸的 UMDF 物件模型來代表間接顯示裝置的各種元件。 UMDF 物件模型可讓驅動程式特定的記憶體與每個 IddCx (以及 UMDF) 物件相關聯。 如需詳細資訊,請參閱 UMDF物件模型

建立 IDD 物件的順序如下:

  • 驅動程式會先建立 IDDCX_ADAPTER 物件。
  • 驅動程式接著會建立 IDDCX_MONITOR 物件。
  • 建立 IDDCX_ADAPTERIDDCX_MONITOR 對象之後,OS 會建立 IDDCX_SWAPCHAINIDDCX_OPMCTX 物件,並將其傳送至驅動程式。

下列各節提供這些對象的詳細數據。

IDDCX_ADAPTER

此物件代表驅動程式在兩個階段程式中建立的單一邏輯顯示配接器:

IDD 模型沒有明確的終結配接器回呼。 配接器初始化順序一旦成功完成,配接器將保持有效,直到初始化期間通過的UMDF裝置停止為止。 當間接顯示器驅動程式(IDD)建立配接器時,它會提供有關間接顯示配接器的靜態資訊。

處理多功能裝置

最簡單的情況是,由附加間接顯示裝置的隨插即用子系統所建立的 UMDF 裝置物件與 IDD 所建立 的IDDCX_ADAPTER 對象之間會有一對一對應。

有些更複雜的情況是,單一間接顯示轉接器包含多個隨插即用設備。 例如,間接顯示解決方案可能會有多個 PnP 裝置功能,例如麥克風(音訊驅動程式)和相機(視訊驅動程式)。 在這種情況下,IDD 會負責為每個 PnP 裝置建立的多個 UMDF 裝置物件建立單一 IDDCX_ADAPTER 物件。 驅動程式需要在此案例中考慮下列幾點:

  • 只有在成功啟動構成間接顯示解決方案的所有 PnP 裝置之後,才應該建立 IDDCX_ADAPTER
  • 驅動程式在建立配接器時必須傳遞單一 WDFDEVICE ,因此需要邏輯來決定要傳遞的 UMDF 裝置。
  • 如果組成間接顯示介面卡的任何裝置有硬體錯誤,驅動程式應該將組成介面卡的所有裝置報告為錯誤。

IDDCX_MONITOR

此物件代表連線到間接顯示配接器上其中一個連接器的特定監視器。

驅動程式會在兩個階段程式中建立監視器物件:

拔除監視器時,驅動程式會呼叫 IddCxMonitorDeparture 回呼來報告該事件。 此呼叫會導致 IDDCX_MONITOR 物件遭到終結。 即使將相同的顯示器拔除並重新連接,仍然需要再次呼叫 IddCxMonitorDeparture/IddCxMonitorArrival 序列。

IDDCX_MONITORIDDCX_ADAPTER物件的子項。

IDDCX_SWAPCHAIN

此物件代表一個 交換鏈,用於將桌面圖像顯示在連接的監視器上。 交換鏈具有多個緩衝區,可讓 OS 在 IDD 存取另一個緩衝區時,在一個緩衝區中撰寫下一個桌面映射。 IDDCX_SWAPCHAINIDDCX_MONITOR的子項,因此在任何時候都只有一個分配給定監視器的交換鏈。

OS 會建立和終結 IDDCX_SWAPCHAIN 物件,並使用 EvtIddCxMonitorAssignSwapChainEvtIddCxMonitorUnassignSwapChain 呼叫將它們指派/取消指派給監視器。

IDDCX_OPMCTX

此物件代表來自單一應用程式 OPM 內容的作用中 輸出保護管理員 (OPM) 內容,應用程式可用來控制單一監視器上的輸出保護。 多個 OPM 環境定義可以同時在指定的監視器上處於作用中狀態。 OS 會呼叫驅動程式,以使用驅動程式的 EvtIddCxMonitorOPMCreateProtectedOutputEvtIddCxMonitorOPMDestroyProtectedOutput DDI 呼叫來建立和銷毀 OPM 上下文。