IDXGIOutput1::D uplicateOutput 方法 (dxgi1_2.h)

從代表配接器輸出的 IDXGIOutput1 介面建立桌面重複介面。

語法

HRESULT DuplicateOutput(
  [in]  IUnknown               *pDevice,
  [out] IDXGIOutputDuplication **ppOutputDuplication
);

參數

[in] pDevice

Direct3D 裝置介面的指標,可用來處理桌面映射。 此裝置必須從輸出連接的適配卡建立。

[out] ppOutputDuplication

接收新 IDXGIOutputDuplication 介面之變數的指標。

傳回值

DuplicateOutput 會傳回:

  • 如果 DuplicateOutput 已成功建立桌面重複介面,S_OK。
  • E_INVALIDARG下列其中一個原因:
    • 指定的裝置 (pDevice) 無效、未在正確的適配卡上建立,或不是從 IDXGIFactory1 (或更新版本的 DXGI Factory 介面建立,而該介面繼承自 IDXGIFactory1) 。
    • 呼叫的應用程式已經複製此桌面輸出。
  • 如果應用程式沒有目前桌面映像的訪問許可權,E_ACCESSDENIED。 例如,只有LOCAL_SYSTEM執行的應用程式可以存取安全桌面。
  • DXGI_ERROR_UNSUPPORTED如果建立的 IDXGIOutputDuplication 介面不支援目前的桌面模式或案例。 例如,不支援 8bpp 和非 DWM 桌面模式。 如果 DuplicateOutput 失敗並出現DXGI_ERROR_UNSUPPORTED,應用程式可以等候桌面交換器和模式變更的系統通知,然後在發生這類通知之後再次呼叫 DuplicateOutput 。 如需詳細資訊,請參閱 EVENT_SYSTEM_DESKTOPSWITCH 和模式變更通知 (WM_DISPLAYCHANGE) 。
  • DXGI_ERROR_NOT_CURRENTLY_AVAILABLE如果 DXGI 達到並行重複應用程式數目上限的限制, (預設為四個) 。 因此,除非其他應用程式關閉,否則呼叫應用程式無法建立任何桌面重複介面。
  • DXGI_ERROR_SESSION_DISCONNECTED如果 DuplicateOutput 失敗,因為會話目前已中斷連線。
  • DXGI_ERROR 主題會 說明其他錯誤碼。

適用於 Windows 7 的平臺更新: 在已安裝 Windows 7 平臺更新 的 Windows 7 或 Windows Server 2008 R2 上, DuplicateOutput 會失敗並E_NOTIMPL。 如需 Windows 7 平臺更新的詳細資訊,請參閱 適用於 Windows 7 的平臺更新

備註

如果應用程式想要複製整個桌面,則必須在桌面上的每個使用中輸出上建立桌面重複介面。 此介面不提供明確的方式來同步處理每個輸出影像的時間。 相反地,應用程式必須使用每個輸出的時間戳,然後決定如何合併影像。

若要讓 DuplicateOutput 成功,您必須從 IDXGIFactory1 或更新版本的 DXGI Factory 介面建立 pDevice,該介面繼承自 IDXGIFactory1

如果目前的模式是立體聲模式,桌面重複介面只會提供左側立體聲影像的影像。

根據預設,只有四個進程可以在單一會話內同時使用 IDXGIOutputDuplication 介面。 進程在單一桌面輸出上只能有一個桌面重複介面;不過,該程式可以有桌面重複介面,適用於屬於桌面的每個輸出。

若要改善效能,請考慮使用 DuplicateOutput1

規格需求

需求
最低支援的用戶端 適用於 Windows 7 的 Windows 8 和平臺更新 [僅限傳統型應用程式]
最低支援的伺服器 適用於 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [僅限傳統型應用程式]
目標平台 Windows
標頭 dxgi1_2.h
程式庫 Dxgi.lib

另請參閱

DuplicateOutput1

IDXGIOutput1