Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The pfnDeallocateCb callback function releases allocations or a kernel-mode resource object if the resource object was created.
Syntax
PFND3DDDI_DEALLOCATECB Pfnd3dddiDeallocatecb;
HRESULT Pfnd3dddiDeallocatecb(
HANDLE hDevice,
const D3DDDICB_DEALLOCATE *unnamedParam2
)
{...}
Parameters
hDevice
A handle to the display device (graphics context).
unnamedParam2
pData [in]
A pointer to a D3DDDICB_DEALLOCATE structure that describes the resource to release.
Return value
pfnDeallocateCb returns one of the following values:
Return code | Description |
---|---|
S_OK | The memory was successfully released. |
E_INVALIDARG | Parameters were validated and determined to be incorrect. |
This function might also return other HRESULT values.
Remarks
The user-mode display driver can release allocations in the following ways:
- Individually, by setting the hResource member of the D3DDDICB_DEALLOCATE structure that is pointed to by pData to NULL and populating the array in the HandleList member of D3DDDICB_DEALLOCATE with handles of the allocations to release
- In a group, by setting hResource to a resource handle whose allocations are to be released. If hResource is non-NULL, the HandleList and NumAllocations members of D3DDDICB_DEALLOCATE are ignored.
Note that the pfnDeallocateCb function is distinct from the user-mode display driver's DestroyResource or DestroyResource(D3D10) function. However, the user-mode display driver typically calls pfnDeallocateCb in response to a call to its DestroyResource or DestroyResource(D3D10) function.
Direct3D Version 9 Note: For more information about creating and destroying resources, see Handling Resource Creation and Destruction.
Direct3D Version 11 Note: For more information about how the driver calls pfnDeallocateCb, see Changes from Direct3D 10.
The following code example shows how to release a resource.
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;
}
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available in Windows Vista and later versions of the Windows operating systems. |
Target Platform | Desktop |
Header | d3dumddi.h (include D3dumddi.h) |