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 オフ、またはその他の全画面表示アプリケーションから切り替える
- アプリケーションにデスクトップ イメージに未処理のマップが既に存在する場合にDXGI_ERROR_INVALID_CALLします。 アプリケーションは、MapDesktopSurface を再度呼び出す前に UnMapDesktopSurface を呼び出す必要があります。 DXGI_ERROR_INVALID_CALLは、 アプリケーションが MapDesktopSurface を呼び出したときにデスクトップ イメージを所有していなかった場合にも返されます。
- デスクトップ イメージがシステム メモリにない場合にDXGI_ERROR_UNSUPPORTEDします。 このような場合、アプリケーションはまずイメージをステージング 画面に転送してから、 IDXGISurface::Map メソッドを呼び出してイメージをロックする必要があります。
- pLockedRect パラメーターが正しくない場合にE_INVALIDARGします。たとえば、pLockedRect が NULL の場合です。
- 場合によっては、 DXGI_ERROR トピックで説明されているその他のエラー コード。
注釈
DXGI_OUTDUPL_DESC構造体の DesktopImageInSystemMemory メンバーが TRUE に設定されている場合は、MapDesktopSurface を正常に呼び出すことができます。 DesktopImageInSystemMemory が FALSE の場合、MapDesktopSurface はDXGI_ERROR_UNSUPPORTEDを返します。 IDXGIOutputDuplication::GetDesc を呼び出して、DXGI_OUTDUPL_DESC構造体を取得します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | dxgi1_2.h |
Library | Dxgi.lib |