PFND3DDDI_DEALLOCATECB回呼函式 (d3dumddi.h)
pfnDeallocateCb 回呼函式會在建立資源物件時釋放配置或核心模式資源物件。
語法
PFND3DDDI_DEALLOCATECB Pfnd3dddiDeallocatecb;
HRESULT Pfnd3dddiDeallocatecb(
HANDLE hDevice,
const D3DDDICB_DEALLOCATE *unnamedParam2
)
{...}
參數
hDevice
顯示裝置的句柄 (圖形內容) 。
unnamedParam2
pData [in]
描述要釋放之資源的 D3DDDICB_DEALLOCATE 結構的指標。
傳回值
pfnDeallocateCb 會傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
S_OK | 已成功釋放記憶體。 |
E_INVALIDARG | 已驗證參數,並判斷為不正確。 |
此函式也可能傳回其他 HRESULT 值。
備註
使用者模式顯示驅動程式可以透過下列方式釋放配置:
- 個別地,藉由將 pData 指向之D3DDDICB_DEALLOCATE結構的 hResource 成員設定為 NULL,並在要釋放的配置句柄D3DDDICB_DEALLOCATE中填入數位
- 在群組中,將 hResource 設定為要釋放其配置的資源句柄。 如果 hResource 不是 NULL,則會忽略 D3DDDICB_DEALLOCATE 的 HandleList 和 NumAllocations 成員。
請注意,pfnDeallocateCb 函式與使用者模式顯示驅動程式的 DestroyResource 或 DestroyResource (D3D10) 函式不同。 不過,使用者模式顯示驅動程式通常會呼叫 pfnDeallocateCb,以回應其 DestroyResource 或 DestroyResource (D3D10) 函式的呼叫。
Direct3D 第 9 版附注: 如需建立和終結資源的詳細資訊,請參閱 處理資源建立和解構。
Direct3D 版本 11 附注: 如需驅動程式如何呼叫 pfnDeallocateCb 的詳細資訊,請參閱 Direct3D 10 的變更。
下列程式代碼範例示範如何釋放資源。
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;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。 |
目標平台 | 桌面 |
標頭 | d3dumddi.h (include D3dumddi.h) |