PFND3DDDI_DEALLOCATECB funzione di callback (d3dumddi.h)
La funzione di callback pfnDeallocateCb rilascia allocazioni o un oggetto risorsa in modalità kernel se l'oggetto risorsa è stato creato.
Sintassi
PFND3DDDI_DEALLOCATECB Pfnd3dddiDeallocatecb;
HRESULT Pfnd3dddiDeallocatecb(
HANDLE hDevice,
const D3DDDICB_DEALLOCATE *unnamedParam2
)
{...}
Parametri
hDevice
Handle per il dispositivo di visualizzazione (contesto grafico).
unnamedParam2
pData [in]
Puntatore a una struttura D3DDDICB_DEALLOCATE che descrive la risorsa da rilasciare.
Valore restituito
pfnDeallocateCb restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
S_OK | La memoria è stata rilasciata correttamente. |
E_INVALIDARG | I parametri sono stati convalidati e sono stati determinati come non corretti. |
Questa funzione potrebbe anche restituire altri valori HRESULT.
Commenti
Il driver di visualizzazione in modalità utente può rilasciare le allocazioni nei modi seguenti:
- Singolarmente, impostando il membro hResource della struttura D3DDDICB_DEALLOCATE a cui fa riferimento pData su NULL e popolando la matrice nel membro HandleList di D3DDDICB_DEALLOCATE con handle delle allocazioni da rilasciare
- In un gruppo, impostando hResource su un handle di risorsa le cui allocazioni devono essere rilasciate. Se hResource è diverso da NULL, i membri HandleList e NumAllocations di D3DDDICB_DEALLOCATE vengono ignorati.
Si noti che la funzione pfnDeallocateCb è distinta dalla funzione DestroyResource o DestroyResource(D3D10) del driver di visualizzazione in modalità utente. Tuttavia, il driver di visualizzazione in modalità utente chiama in genere pfnDeallocateCb in risposta a una chiamata alla relativa funzione DestroyResource o DestroyResource(D3D10).
Nota direct3D versione 9: Per altre informazioni sulla creazione e l'eliminazione delle risorse, vedere Gestione della creazione e della distruzione delle risorse.
Nota direct3D versione 11: Per altre informazioni su come il driver chiama pfnDeallocateCb, vedere Modifiche da Direct3D 10.
Nell'esempio di codice seguente viene illustrato come rilasciare una risorsa.
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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows. |
Piattaforma di destinazione | Desktop |
Intestazione | d3dumddi.h (include D3dumddi.h) |