PFND3DDDI_DEALLOCATECB función de devolución de llamada (d3dumddi.h)
La función de devolución de llamada pfnDeallocateCb libera asignaciones o un objeto de recurso en modo kernel si se creó el objeto de recurso.
Sintaxis
PFND3DDDI_DEALLOCATECB Pfnd3dddiDeallocatecb;
HRESULT Pfnd3dddiDeallocatecb(
HANDLE hDevice,
const D3DDDICB_DEALLOCATE *unnamedParam2
)
{...}
Parámetros
hDevice
Identificador del dispositivo de visualización (contexto de gráficos).
unnamedParam2
pData [in]
Puntero a una estructura de D3DDDICB_DEALLOCATE que describe el recurso que se va a liberar.
Valor devuelto
pfnDeallocateCb devuelve uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
S_OK | La memoria se liberó correctamente. |
E_INVALIDARG | Los parámetros se validaron y determinaron que son incorrectos. |
Esta función también puede devolver otros valores HRESULT.
Comentarios
El controlador de pantalla en modo de usuario puede liberar asignaciones de las siguientes maneras:
- Individualmente, estableciendo el miembro hResource de la estructura D3DDDICB_DEALLOCATE a la que apunta pData en NULL y rellenando la matriz en el miembro HandleList de D3DDDICB_DEALLOCATE con identificadores de las asignaciones para liberar
- En un grupo, estableciendo hResource en un identificador de recursos cuyas asignaciones se van a liberar. Si hResource no es NULL, se omiten los miembros HandleList y NumAllocations de D3DDDICB_DEALLOCATE.
Tenga en cuenta que la función pfnDeallocateCb es distinta de la función DestroyResource o DestroyResource(D3D10) del controlador de pantalla en modo de usuario. Sin embargo, el controlador de pantalla en modo de usuario normalmente llama a pfnDeallocateCb en respuesta a una llamada a su función DestroyResource o DestroyResource(D3D10).
Nota de Direct3D versión 9: Para obtener más información sobre cómo crear y destruir recursos, consulte Control de la creación y destrucción de recursos.
Nota de Direct3D versión 11: Para obtener más información sobre cómo el controlador llama a pfnDeallocateCb, consulte Cambios de Direct3D 10.
En el ejemplo de código siguiente se muestra cómo liberar un recurso.
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;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows. |
Plataforma de destino | Escritorio |
Encabezado | d3dumddi.h (incluya D3dumddi.h) |