DwmDxGetWindowSharedSurface 函式

擷取指定視窗的 DirectX 共用表面。 這個介面可以寫入至 ,以更新視窗的內容。

語法

HRESULT WINAPI DwmDxGetWindowSharedSurface(
  _In_     HWND        hwnd,
  _In_     LUID        luidAdapter,
  _In_opt_ HMONITOR    hmonitorAssociation,
  _In_     DWORD       dwFlags,
  _Inout_  DXGI_FORMAT *pfmtWindow,
  _Out_    HANDLE      *phDxSurface,
  _Out_    UINT64      *puiUpdateId
);

參數

hwnd

HWND,指定要更新的視窗。

luidAdapter

介面所在配接器的 LUID

hmonitorAssociation

保留的。

dwFlags

此參數可以是下列其中一個值,或適當情況下多個值的位 OR 組合。

意義
DWM_REDIRECTION_FLAG_WAIT
0
導致函式封鎖,直到 VSync (VSync) 自上次成功呼叫函式以來傳遞為止。
DWM_REDIRECTION_FLAG_SUPPORT_PRESENT_TO_GDI_SURFACE
0x10
表示呼叫的應用程式能夠呈現至 GDI 共用介面。

pfmtWindow

在輸入時,介面所需的格式。 在輸出上,傳回介面的實際格式。

phDxSurface

在輸出上,介面的共用控制碼。

puiUpdateId

輸出時,更新的識別碼。

傳回值

此函式可以傳回其中一個值。

傳回碼 描述
S_OK 呼叫成功,您應該更新介面,請務必在提交更新時,將更新識別碼傳遞至D3DKMTRender (,D3DKMT_RENDER 結構的PresentHistoryToken成員中,然後應該使用相同的更新識別碼呼叫DwmDxUpdateWindowSharedSurface。 請注意,不論表面是否實際更新,都應該呼叫 DwmDxUpdateWindowSharedSurface
DWM_S_GDI_REDIRECTION_SURFACE 呼叫成功,您應該呼叫 D3DKMTPresent來更新介面,並將 PresentHistoryToken 成員的 Model 設定為 D3DKMT_PM_REDIRECTED_BLT,並在等位的 Blt 成員中提供更新識別碼。 只有在dwFlags中指定了DWM_REDIRECTION_FLAG_SUPPORT_PRESENT_TO_GDI_SURFACE時,才會傳回此值。
DWM_E_ADAPTER_NOT_FOUND luidAdapter的值無效。
DWM_E_COMPOSITIONDISABLED DWM 目前未啟用,而且應用程式必須以另一種方式呈現。

備註

此 API 適用于實作圖形驅動程式或執行時間。 應用程式可能不會呼叫這個方法。 本檔僅適用于 Windows 7,而且此 API 不保證在其他版本的 Windows 上存在或行為類似。 此函式不存在於任何標頭或靜態程式庫中,且位於 dwmapi.dll 中的序數 100。

規格需求

需求
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 都不支援
用戶端支援結束 Windows 7
標頭 N/A
DLL Dwmapi.dll