PFND3DDDI_SETPRIORITYCB fonction de rappel (d3dumddi.h)
La fonction pfnSetPriorityCb définit le niveau de priorité d’une ressource ou d’une liste d’allocations.
Syntaxe
PFND3DDDI_SETPRIORITYCB Pfnd3dddiSetprioritycb;
HRESULT Pfnd3dddiSetprioritycb(
HANDLE hDevice,
D3DDDICB_SETPRIORITY *unnamedParam2
)
{...}
Paramètres
hDevice
Handle de l’appareil d’affichage (contexte graphique).
unnamedParam2
pData [in]
Pointeur vers une structure D3DDDICB_SETPRIORITY qui décrit le niveau de priorité pour définir une ressource ou une liste d’allocations.
Valeur de retour
pfnSetPriorityCb retourne l’une des valeurs suivantes :
Retourner le code | Description |
---|---|
S_OK | Le niveau de priorité a été correctement défini. |
E_INVALIDARG | Les paramètres ont été validés et déterminés comme incorrects. |
Cette fonction peut également retourner d’autres valeurs HRESULT.
Remarques
Le pilote d’affichage en mode utilisateur peut appeler la fonction pfnSetPriorityCb pour définir la priorité de la ressource sous-jacente ou de la liste d’allocations. Si le niveau de priorité d’une ressource est défini, toutes les allocations qui appartiennent à la ressource sont définies sur le niveau de priorité spécifié. En règle générale, le pilote d’affichage en mode utilisateur définit la priorité d’une ressource ou d’une liste d’allocations après l’appel du runtime Microsoft Direct3D par le pilote d’affichage en mode utilisateur SetPriority ou SetResourcePriorityDXGI fonction pour définir la priorité d’éviction de la mémoire d’une ressource. Toutefois, le pilote d’affichage en mode utilisateur peut définir la priorité des allocations à tout moment.
Une fois qu’une application demande de définir le niveau de priorité d’une surface, le pilote d’affichage en mode utilisateur doit définir la ressource ou la liste appropriée d’allocations au niveau de priorité spécifié par l’application.
Le pilote peut utiliser des niveaux de priorité autres que les valeurs définies précédentes le cas échéant. Par exemple, le marquage d’une allocation avec un niveau de priorité de 0x78000001 indique que l’allocation est légèrement supérieure à la normale.
Exemples
L’exemple de code suivant montre comment définir le niveau de priorité.
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));
}
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows. |
plateforme cible | Bureau |
d’en-tête | d3dumddi.h (include D3dumddi.h) |