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 オペレーティング システムで使用できます。
対象プラットフォーム デスクトップ
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDICB_SETPRIORITY

D3DDDI_DEVICECALLBACKS

DxgkCbCreateContextAllocation

SetPriority

SetResourcePriorityDXGI