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 函式之後,設定資源資源或配置清單的優先順序,以設定資源的收回自記憶體優先順序。 不過,使用者模式顯示驅動程式可以隨時設定配置優先順序。

應用程式要求設定介面的優先順序層級之後,使用者模式顯示驅動程式應該將適當的資源或配置清單設定為應用程式所指定的優先順序層級。

注意 優先順序層級只是影片記憶體管理員的提示;記憶體管理員可以在各種情況下忽略它們。
 
配置優先順序會同時定義配置維持駐留的可能性,以及視訊記憶體管理員嘗試遵守驅動程式對於配置放置喜好設定的可能性。 下列優先順序層級定義於 D3dukmdt.h 頭檔中:

驅動程式可以在適當時使用上述定義值以外的優先順序層級。 例如,標示優先順序層級為 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)

另請參閱

D3DDDICB_SETPRIORITY

D3DDDI_DEVICECALLBACKS

DxgkCbCreateContextAllocation

SetPriority

SetResourcePriorityDXGI