次の方法で共有


IDXGIOutputDuplication::MapDesktopSurface メソッド (dxgi1_2.h)

デスクトップ イメージが既にシステム メモリ内にある場合は、デスクトップ イメージへの効率的なアクセスを CPU に提供します。

構文

HRESULT MapDesktopSurface(
  [out] DXGI_MAPPED_RECT *pLockedRect
);

パラメーター

[out] pLockedRect

CPU がサーフェス データに直接アクセスするために必要なサーフェス データを受け取る DXGI_MAPPED_RECT構造体への ポインター。

戻り値

MapDesktopSurface は 次を返します。

  • サーフェス データが正常に取得された場合にS_OKします。
  • デスクトップ重複インターフェイスが無効な場合にDXGI_ERROR_ACCESS_LOSTします。 デスクトップの複製インターフェイスは、通常、別の種類のイメージがデスクトップに表示されると無効になります。 この状況の例を次に示します。
    • デスクトップ スイッチ
    • モードの変更
    • DWM オン、DWM オフ、またはその他の全画面表示アプリケーションから切り替える
    このような場合、アプリケーションは IDXGIOutputDuplication インターフェイスを解放し、新しいコンテンツの新しい IDXGIOutputDuplication を作成する必要があります。
  • アプリケーションにデスクトップ イメージに未処理のマップが既に存在する場合にDXGI_ERROR_INVALID_CALLします。 アプリケーションは、MapDesktopSurface を再度呼び出す前に UnMapDesktopSurface を呼び出す必要があります。 DXGI_ERROR_INVALID_CALLは、 アプリケーションが MapDesktopSurface を呼び出したときにデスクトップ イメージを所有していなかった場合にも返されます。
  • デスクトップ イメージがシステム メモリにない場合にDXGI_ERROR_UNSUPPORTEDします。 このような場合、アプリケーションはまずイメージをステージング 画面に転送してから、 IDXGISurface::Map メソッドを呼び出してイメージをロックする必要があります。
  • pLockedRect パラメーターが正しくない場合にE_INVALIDARGします。たとえば、pLockedRectNULL の場合です。
  • 場合によっては、 DXGI_ERROR トピックで説明されているその他のエラー コード。

注釈

DXGI_OUTDUPL_DESC構造体の DesktopImageInSystemMemory メンバーが TRUE に設定されている場合は、MapDesktopSurface を正常に呼び出すことができます。 DesktopImageInSystemMemoryFALSE の場合、MapDesktopSurface はDXGI_ERROR_UNSUPPORTEDを返します。 IDXGIOutputDuplication::GetDesc を呼び出して、DXGI_OUTDUPL_DESC構造体を取得します。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー dxgi1_2.h
Library Dxgi.lib

こちらもご覧ください

IDXGIOutputDuplication