PFND3DDDI_DEALLOCATECB função de retorno de chamada (d3dumddi.h)
A função de retorno de chamada pfnDeallocateCb libera alocações ou um objeto de recurso no modo kernel se o objeto de recurso foi criado.
Sintaxe
PFND3DDDI_DEALLOCATECB Pfnd3dddiDeallocatecb;
HRESULT Pfnd3dddiDeallocatecb(
HANDLE hDevice,
const D3DDDICB_DEALLOCATE *unnamedParam2
)
{...}
Parâmetros
hDevice
Um identificador para o dispositivo de exibição (contexto gráfico).
unnamedParam2
pData [in]
Um ponteiro para uma estrutura D3DDDICB_DEALLOCATE que descreve o recurso a ser liberado.
Retornar valor
pfnDeallocateCb retorna um dos seguintes valores:
Código de retorno | Descrição |
---|---|
S_OK | A memória foi liberada com êxito. |
E_INVALIDARG | Os parâmetros foram validados e determinados como incorretos. |
Essa função também pode retornar outros valores HRESULT.
Comentários
O driver de exibição do modo de usuário pode liberar alocações das seguintes maneiras:
- Individualmente, definindo o membro hResource da estrutura D3DDDICB_DEALLOCATE que é apontado por pData como NULL e preenchendo a matriz no membro HandleList de D3DDDICB_DEALLOCATE com identificadores das alocações a serem lançadas
- Em um grupo, definindo hResource como um identificador de recurso cujas alocações devem ser liberadas. Se hResource não for NULL, os membros HandleList e NumAllocations de D3DDDICB_DEALLOCATE serão ignorados.
Observe que a função pfnDeallocateCb é distinta da função DestroyResource ou DestroyResource(D3D10) do driver de exibição do usuário. No entanto, o driver de exibição do modo de usuário normalmente chama pfnDeallocateCb em resposta a uma chamada para sua função DestroyResource ou DestroyResource(D3D10).
Observação do Direct3D versão 9: Para obter mais informações sobre como criar e destruir recursos, consulte Manipulando a criação e a destruição de recursos.
Observação do Direct3D versão 11: Para obter mais informações sobre como o driver chama pfnDeallocateCb, consulte Alterações do Direct3D 10.
O exemplo de código a seguir mostra como liberar um 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 | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3dumddi.h (inclua D3dumddi.h) |