Freigeben über


PFND3DDDI_SETPRIORITYCB Rückruffunktion (d3dumddi.h)

Die pfnSetPriorityCb--Funktion legt die Prioritätsebene einer Ressource oder Liste der 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, um eine Ressource oder Liste der Zuordnungen festzulegen.

Rückgabewert

pfnSetPriorityCb gibt einen der folgenden Werte zurück:

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

Diese Funktion kann auch andere HRESULT-Werte zurückgeben.

Bemerkungen

Der Anzeigetreiber für den Benutzermodus 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 Liste der Zuordnungen fest, nachdem die Microsoft Direct3D-Laufzeit die SetPriority- oder SetResourcePriorityDXGI--Funktion aufruft, um die Eviction-from-Memory-Priorität für eine Ressource festzulegen. Der Anzeigetreiber für den Benutzermodus kann jedoch jederzeit die Priorität der Zuordnungen festlegen.

Nachdem eine Anwendung die Prioritätsebene einer Oberfläche festgelegt hat, sollte der Anzeigetreiber für den Benutzermodus die entsprechende Ressource oder Liste der Zuordnungen auf die Prioritätsebene festlegen, die von der Anwendung angegeben wird.

Hinweis Prioritätsebenen sind nur ein Hinweis auf den Videospeicher-Manager; sie können vom Speicher-Manager unter verschiedenen Bedingungen ignoriert werden.
 
Eine Zuordnungspriorität definiert sowohl die Wahrscheinlichkeit, dass die Zuweisung ansässig bleibt, als auch die Wahrscheinlichkeit, wie schwierig der Videospeichermanager versucht, die Einstellung des Treibers für die Platzierung der Zuordnung zu respektieren. Die folgenden Prioritätsebenen werden in der Headerdatei D3dukmdt.h definiert:

Der Treiber kann bei Bedarf andere Prioritätsstufen als die vorherigen definierten Werte verwenden. Wenn Sie beispielsweise eine Zuordnung mit einer Prioritätsstufe von 0x78000001 markieren, bedeutet dies, dass die Zuordnung etwas über der Normalität liegt.

Beispiele

Das folgende Codebeispiel zeigt, 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
mindestens unterstützte Client- Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme.
Zielplattform- Desktop
Header- d3dumddi.h (include D3dumddi.h)

Siehe auch

D3DDDICB_SETPRIORITY

D3DDDI_DEVICECALLBACKS

DxgkCbCreateContextAllocation-

SetPriority-

SetResourcePriorityDXGI-