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 (または IDXGIFactory1 を継承する DXGI ファクトリ インターフェイスの新しいバージョン) から作成されていません。
- 呼び出し元のアプリケーションでは、このデスクトップ出力が既に複製されています。
- アプリケーションが現在のデスクトップ イメージへのアクセス権を持っていない場合にE_ACCESSDENIEDします。 たとえば、セキュリティで保護されたデスクトップにアクセスできるのは、LOCAL_SYSTEMで実行されるアプリケーションのみです。
- 作成された IDXGIOutputDuplication インターフェイスが現在のデスクトップ モードまたはシナリオをサポートしていない場合にDXGI_ERROR_UNSUPPORTEDします。 たとえば、8bpp および DWM 以外のデスクトップ モードはサポートされていません。 DXGI_ERROR_UNSUPPORTEDで DuplicateOutput が失敗した場合、アプリケーションはデスクトップ スイッチとモードの変更に関するシステム通知を待機し、そのような通知が発生した後に DuplicateOutput をもう一度呼び出すことができます。 詳細については、「 EVENT_SYSTEM_DESKTOPSWITCH およびモード変更通知 (WM_DISPLAYCHANGE)」を参照してください。
- DXGI が同時重複アプリケーションの最大数の制限に達した場合にDXGI_ERROR_NOT_CURRENTLY_AVAILABLEします (既定値は 4)。 そのため、呼び出し元のアプリケーションは、他のアプリケーションが閉じるまで、デスクトップの重複インターフェイスを作成できません。
- セッションが現在切断されているために DuplicateOutput が失敗した場合にDXGI_ERROR_SESSION_DISCONNECTEDします。
- その他のエラー コードについては、 DXGI_ERROR トピックを参照してください。
Windows 7 のプラットフォーム更新プログラム: Windows 7 用プラットフォーム更新プログラム がインストールされている Windows 7 または Windows Server 2008 R2 では、 DuplicateOutput はE_NOTIMPLで失敗します。 Windows 7 のプラットフォーム更新プログラムの詳細については、「Windows 7 用プラットフォーム更新プログラム」を参照してください。
注釈
アプリケーションがデスクトップ全体を複製する場合は、デスクトップ上のアクティブな出力ごとにデスクトップ重複インターフェイスを作成する必要があります。 このインターフェイスは、各出力イメージのタイミングを同期する明示的な方法を提供しません。 代わりに、アプリケーションは各出力のタイム スタンプを使用し、イメージを結合する方法を決定する必要があります。
DuplicateOutput を成功させるには、IDXGIFactory1 から pDevice を作成するか、または IDXGIFactory1 から継承する DXGI ファクトリ インターフェイスの新しいバージョンを作成する必要があります。
現在のモードがステレオ モードの場合、デスクトップの重複インターフェイスは、左側のステレオ イメージのイメージのみを提供します。
既定では、1 つのセッション内で 同時に IDXGIOutputDuplication インターフェイスを使用できるプロセスは 4 つだけです。 プロセスは、1 つのデスクトップ出力で 1 つのデスクトップ重複インターフェイスのみを持つことができます。ただし、そのプロセスには、デスクトップの一部である出力ごとにデスクトップ重複インターフェイスを使用できます。
パフォーマンスを向上させるには、 DuplicateOutput1 の使用を検討してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 用のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 R2 のWindows Server 2012とプラットフォーム更新プログラム [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | dxgi1_2.h |
Library | Dxgi.lib |