PFND3DDDI_QUERYRESOURCERESIDENCY fonction de rappel (d3dumddi.h)

La fonction QueryResourceResidency détermine la résidence de la liste de ressources donnée.

Syntaxe

PFND3DDDI_QUERYRESOURCERESIDENCY Pfnd3dddiQueryresourceresidency;

HRESULT Pfnd3dddiQueryresourceresidency(
  HANDLE hDevice,
  const D3DDDIARG_QUERYRESOURCERESIDENCY *unnamedParam2
)
{...}

Paramètres

hDevice

Handle de l’appareil d’affichage (contexte graphique).

unnamedParam2

pData [in]

Pointeur vers une structure de D3DDDIARG_QUERYRESOURCERESIDENCY qui décrit une liste de ressources sur lesquelles la résidence est vérifiée.

Valeur retournée

QueryResourceResidency retourne l’une des valeurs suivantes :

Code de retour Description
S_OK Toutes les ressources sont en mémoire accessible par GPU.
S_RESIDENT_IN_SHARED_MEMORY Aucune allocation qui comprend les ressources ne se trouve sur le disque. Toutefois, au moins une allocation ne se trouve pas dans la mémoire accessible par GPU.
S_NOT_RESIDENT Au moins une allocation qui comprend les ressources se trouve sur le disque.
E_INVALIDARG Les paramètres ont été validés et déterminés comme incorrects.
E_OUTOFMEMORY QueryResourceResidency n’a pas pu allouer la mémoire nécessaire à son exécution.

Remarques

Le runtime Microsoft Direct3D appelle la fonction QueryResourceResidency du pilote d’affichage en mode utilisateur pour les applications afin de déterminer si le système d’exploitation entraîne un blocage important au moment du tirage si le système doit rendre les ressources accessibles par GPU. Les informations retournées par QueryResourceResidency sont une approximation de la résidence des ressources, car les ressources peuvent être rétrogradées avant que les applications n’utilisent les ressources.

La fonction QueryResourceResidency du pilote d’affichage en mode utilisateur doit effectuer des appels à la fonction pfnQueryResidencyCb . La fonction pfnQueryResidencyCb retourne la status de résidence d’une ressource dans les éléments du tableau spécifiés par le membre pResidencyStatus de la structure D3DDDICB_QUERYRESIDENCY. Si pfnQueryResidencyCb retourne D3DDDI_RESIDENCYSTATUS_NOTRESIDENT pour une requête, QueryResourceResidency doit retourner S_NOT_RESIDENT. Si pfnQueryResidencyCb retourne D3DDDI_RESIDENCYSTATUS_RESIDENTINSHAREDMEMORY pour une requête et ne retourne pas de D3DDDI_RESIDENCYSTATUS_NOTRESIDENT pour une requête, QueryResourceResidency doit retourner S_RESIDENT_IN_SHARED_MEMORY. QueryResourceResidency doit retourner S_OK uniquement si tous les appels à pfnQueryResidencyCb pour toutes les requêtes retournent D3DDDI_RESIDENCYSTATUS_RESIDENTINGPUMEMORY.

Pour chaque ressource que le runtime interroge via un appel à QueryResourceResidency, le pilote d’affichage en mode utilisateur doit déterminer les allocations qui appartiennent à la ressource à interroger via un appel à pfnQueryResidencyCb. Pour une ressource qui possède une allocation unique, la détermination est simple : le pilote interroge cette allocation. Toutefois, si une ressource possède plusieurs allocations, la détermination est plus difficile. Le pilote doit déterminer les allocations qu’une application utilisera probablement pour le rendu, et le pilote doit interroger uniquement ces allocations. Par exemple, si une ressource possède une allocation utilisée pour le rendu et une allocation de scratch qui gère une opération de verrouillage, le pilote doit interroger uniquement la résidence de la première allocation, car une application n’utilisera probablement pas la deuxième allocation pour le rendu.

Note Étant donné que le runtime ne prend pas en charge l’interrogation de résidence des ressources de mémoire système, le runtime échoue toujours les demandes des applications pour le status de résidence des ressources de mémoire système et n’appelle jamais la fonction QueryResourceResidency du pilote d’affichage en mode utilisateur pour ces ressources de mémoire système.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et les versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

D3DDDIARG_QUERYRESOURCERESIDENCY

D3DDDICB_QUERYRESIDENCY

D3DDDI_DEVICEFUNCS

pfnQueryResidencyCb