PFND3DDDI_DEALLOCATECB fonction de rappel (d3dumddi.h)
La fonction de rappel pfnDeallocateCb libère des allocations ou un objet de ressource en mode noyau si l’objet de ressource a été créé.
Syntaxe
PFND3DDDI_DEALLOCATECB Pfnd3dddiDeallocatecb;
HRESULT Pfnd3dddiDeallocatecb(
HANDLE hDevice,
const D3DDDICB_DEALLOCATE *unnamedParam2
)
{...}
Paramètres
hDevice
Handle pour le périphérique d’affichage (contexte graphique).
unnamedParam2
pData [in]
Pointeur vers une structure D3DDDICB_DEALLOCATE qui décrit la ressource à libérer.
Valeur retournée
pfnDeallocateCb retourne l’une des valeurs suivantes :
Code de retour | Description |
---|---|
S_OK | La mémoire a été libérée avec succès. |
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 libérer des allocations des manières suivantes :
- Individuellement, en définissant le membre hResource de la structure D3DDDICB_DEALLOCATE pointée par pData sur NULL et en remplissant le tableau dans le membre HandleList de D3DDDICB_DEALLOCATE avec des handles des allocations à libérer
- Dans un groupe, en définissant hResource sur un handle de ressource dont les allocations doivent être libérées. Si hResource n’a pas la valeur NULL, les membres HandleList et NumAllocations de D3DDDICB_DEALLOCATE sont ignorés.
Notez que la fonction pfnDeallocateCb est distincte de la fonction DestroyResource ou DestroyResource(D3D10) du pilote d’affichage en mode utilisateur. Toutefois, le pilote d’affichage en mode utilisateur appelle généralement pfnDeallocateCb en réponse à un appel à sa fonction DestroyResource ou DestroyResource(D3D10).
Remarque de Direct3D version 9 : Pour plus d’informations sur la création et la destruction de ressources, consultez Gestion de la création et de la destruction des ressources.
Remarque de Direct3D version 11 : Pour plus d’informations sur la façon dont le pilote appelle pfnDeallocateCb, consultez Modifications de Direct3D 10.
L’exemple de code suivant montre comment libérer une ressource.
D3DDDICB_DEALLOCATE deAllocCB;
HRESULT hr;
D3DKMT_HANDLE hKMAllocHandle;
memset(&deAllocCB, 0, sizeof(deAllocCB));
deAllocCB.hResource = m_hCurResRuntime;
hr = m_d3dCallbacks.pfnDeallocateCb(m_hD3D, &deAllocCB);
if ((m_hCurResRuntime) && (SUCCEEDED(hr))) {
m_bCurResFreed = TRUE;
}
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) |