次の方法で共有


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