PFND3DDDI_DEALLOCATECB funzione di callback (d3dumddi.h)
Il pfnDeallocateCb funzione di callback 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 in modo che non siano corretti. |
Questa funzione potrebbe restituire anche altri valori HRESULT.
Osservazioni
Il driver di visualizzazione in modalità utente può rilasciare le allocazioni nei modi seguenti:
- Singolarmente, impostando il membro hResource della struttura di D3DDDICB_DEALLOCATE a cui punta 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 non èNULL, i HandleList e NumAllocations membri di D3DDDICB_DEALLOCATE vengono ignorati.
Si noti che la funzione pfnDeallocateCb è diversa dalla funzione del driver di visualizzazione in modalità utente DestroyResource o DestroyResource(D3D10). Tuttavia, il driver di visualizzazione in modalità utente chiama in genere pfnDeallocateCb in risposta a una chiamata al relativo DestroyResource o Funzione DestroyResource(D3D10).
Direct3D versione 9 Nota: Per altre informazioni sulla creazione e l'eliminazione di risorse, vedere Gestione della creazione e della distruzione delle risorse.
Direct3D versione 11 Nota: 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;
}
Fabbisogno
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) |