Freigeben über


PFND3DDDI_SETPRIORITYCB Rückruffunktion (d3dumddi.h)

Die pfnSetPriorityCb-Funktion legt die Prioritätsebene einer Ressource oder Liste von Zuordnungen fest.

Syntax

PFND3DDDI_SETPRIORITYCB Pfnd3dddiSetprioritycb;

HRESULT Pfnd3dddiSetprioritycb(
  HANDLE hDevice,
  D3DDDICB_SETPRIORITY *unnamedParam2
)
{...}

Parameter

hDevice

Ein Handle für das Anzeigegerät (Grafikkontext).

unnamedParam2

pData [in]

Ein Zeiger auf eine D3DDDICB_SETPRIORITY-Struktur , die die Prioritätsebene beschreibt, auf die eine Ressource oder Liste von Zuordnungen festgelegt werden soll.

Rückgabewert

pfnSetPriorityCb gibt einen der folgenden Werte zurück:

Rückgabecode Beschreibung
S_OK Die Prioritätsstufe wurde erfolgreich festgelegt.
E_INVALIDARG Die Parameter wurden überprüft und als falsch ermittelt.

Diese Funktion gibt möglicherweise auch andere HRESULT-Werte zurück.

Hinweise

Der Benutzermodusanzeigetreiber kann die pfnSetPriorityCb-Funktion aufrufen, um die Priorität der zugrunde liegenden Ressource oder Liste der Zuordnungen festzulegen. Wenn die Prioritätsebene einer Ressource festgelegt ist, werden alle Zuordnungen, die zur Ressource gehören, auf die angegebene Prioritätsebene festgelegt. In der Regel legt der Anzeigetreiber für den Benutzermodus die Priorität einer Ressource oder einer Liste von Zuordnungen fest, nachdem die Microsoft Direct3D-Runtime die Funktion SetPriority oder SetResourcePriorityDXGI des Benutzermodusanzeigetreibers aufgerufen hat, um die eviction-from-memory-Priorität für eine Ressource festzulegen. Der Anzeigetreiber für den Benutzermodus kann jedoch jederzeit die Priorität von Zuordnungen festlegen.

Nachdem eine Anwendung anfordert, die Prioritätsebene eines Surface festzulegen, sollte der Benutzermodusanzeigetreiber die entsprechende Ressource oder Liste der Zuordnungen auf die von der Anwendung angegebene Prioritätsebene festlegen.

Hinweis Prioritätsebenen sind nur ein Hinweis an den Videospeicher-Manager. sie können vom Speicher-Manager unter verschiedenen Bedingungen ignoriert werden.
 
Eine Zuordnungspriorität definiert sowohl die Wahrscheinlichkeit, dass die Zuordnung resident bleibt, als auch die Wahrscheinlichkeit, wie stark der Videospeicher-Manager versuchen wird, die Präferenz des Fahrers für die Platzierung der Zuordnung zu berücksichtigen. Die folgenden Prioritätsebenen sind in der Headerdatei D3dukmdt.h definiert:

Der Treiber kann ggf. andere Prioritätsstufen als die oben definierten Werte verwenden. Wenn Sie beispielsweise eine Zuordnung mit der Prioritätsstufe 0x78000001 markieren, wird angegeben, dass die Zuordnung etwas über dem Normalwert liegt.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie Die Prioritätsstufe festgelegt wird.

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));
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Desktop
Kopfzeile d3dumddi.h (include D3dumddi.h)

Weitere Informationen

D3DDDICB_SETPRIORITY

D3DDDI_DEVICECALLBACKS

DxgkCbCreateContextAllocation

SetPriority

SetResourcePriorityDXGI