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 pour le périphérique d’affichage (contexte graphique).
unnamedParam2
pData [in]
Pointeur vers une structure de D3DDDICB_SETPRIORITY qui décrit le niveau de priorité auquel définir une ressource ou une liste d’allocations.
Valeur retournée
pfnSetPriorityCb retourne l’une des valeurs suivantes :
Code de retour | 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 que le runtime Microsoft Direct3D a appelé la fonction SetPriority ou SetResourcePriorityDXGI du pilote d’affichage en mode utilisateur pour définir la priorité d’éviction de la mémoire pour 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 à définir le niveau de priorité d’une surface, le pilote d’affichage en mode utilisateur doit définir la ressource ou la liste d’allocations appropriée sur le niveau de priorité spécifié par l’application.
Le pilote peut utiliser d’autres niveaux de priorité 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));
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | d3dumddi.h (inclure D3dumddi.h) |