PFND3DDDI_SETPRIORITYCB回呼函式 (d3dumddi.h)
pfnSetPriorityCb 函式會設定資源或配置清單的優先順序層級。
語法
PFND3DDDI_SETPRIORITYCB Pfnd3dddiSetprioritycb;
HRESULT Pfnd3dddiSetprioritycb(
HANDLE hDevice,
D3DDDICB_SETPRIORITY *unnamedParam2
)
{...}
參數
hDevice
顯示裝置的句柄 (圖形內容) 。
unnamedParam2
pData [in]
D3DDDICB_SETPRIORITY結構的指標,描述要設定資源或配置清單的優先順序層級。
傳回值
pfnSetPriorityCb 會傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
S_OK | 已成功設定優先順序層級。 |
E_INVALIDARG | 已驗證參數,並判斷為不正確。 |
此函式也可能傳回其他 HRESULT 值。
備註
使用者模式顯示驅動程式可以呼叫 pfnSetPriorityCb 函式,以設定基礎資源或配置清單的優先順序。 如果已設定資源的優先順序級,則屬於資源的所有配置都會設定為指定的優先順序層級。 一般而言,使用者模式顯示驅動程式會在 Microsoft Direct3D 運行時間呼叫使用者模式顯示驅動程式的 SetPriority 或 SetResourcePriorityDXGI 函式之後,設定資源資源或配置清單的優先順序,以設定資源的收回自記憶體優先順序。 不過,使用者模式顯示驅動程式可以隨時設定配置優先順序。
應用程式要求設定介面的優先順序層級之後,使用者模式顯示驅動程式應該將適當的資源或配置清單設定為應用程式所指定的優先順序層級。
注意 優先順序層級只是影片記憶體管理員的提示;記憶體管理員可以在各種情況下忽略它們。
驅動程式可以在適當時使用上述定義值以外的優先順序層級。 例如,標示優先順序層級為 0x78000001 的配置,表示配置稍微高於正常。
範例
下列程式代碼範例示範如何設定優先順序層級。
HRESULT CD3DContext::SetPriority(CONST D3DDDIARG_SETPRIORITY* pSetPriority) {
DWORD dwSurfaceHandle = (DWORD)(DWORD_PTR)pSetPriority->hResource;
CResource &res = m_RTbl[dwSurfaceHandle];
D3DDDICB_SETPRIORITY setPri;
UINT priority;
priority = pSetPriority->Priority;
memset(&setPri, 0, sizeof(setPri));
setPri.hResource = res.m_hResRuntime;
setPri.pPriorities = &priority;
return (m_d3dCallbacks.pfnSetPriorityCb(m_hD3D, &setPri));
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
目標平台 | 桌面 |
標頭 | d3dumddi.h (包含 D3dumddi.h) |