PFND3DDDI_DEALLOCATECB Rückruffunktion (d3dumddi.h)
Die PfnDeallocateCb-Rückruffunktion gibt Zuordnungen oder ein Kernelmodus-Ressourcenobjekt frei, wenn das Ressourcenobjekt erstellt wurde.
Syntax
PFND3DDDI_DEALLOCATECB Pfnd3dddiDeallocatecb;
HRESULT Pfnd3dddiDeallocatecb(
HANDLE hDevice,
const D3DDDICB_DEALLOCATE *unnamedParam2
)
{...}
Parameter
hDevice
Ein Handle für das Anzeigegerät (Grafikkontext).
unnamedParam2
pData [in]
Ein Zeiger auf eine D3DDDICB_DEALLOCATE-Struktur , die die freizugebende Ressource beschreibt.
Rückgabewert
pfnDeallocateCb gibt einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
S_OK | Der Speicher wurde erfolgreich freigegeben. |
E_INVALIDARG | Die Parameter wurden überprüft und als falsch ermittelt. |
Diese Funktion gibt möglicherweise auch andere HRESULT-Werte zurück.
Hinweise
Der Anzeigetreiber für den Benutzermodus kann Zuordnungen auf folgende Weise freigeben:
- Einzeln durch Festlegen des hResource-Elements der D3DDDICB_DEALLOCATE Struktur, auf die pData verweist, auf NULL und Auffüllen des Arrays im HandleList-Member von D3DDDICB_DEALLOCATE mit Handles der zu freigebenden Zuordnungen
- In einer Gruppe durch Festlegen von hResource auf ein Ressourcenhandle, dessen Zuordnungen freigegeben werden sollen. Wenn hResource nicht NULL ist, werden die HandleList - und NumAllocations-Member von D3DDDICB_DEALLOCATE ignoriert.
Beachten Sie, dass sich die pfnDeallocateCb-Funktion von der DestroyResource - oder DestroyResource(D3D10) -Funktion des Benutzermodustreibers unterscheidet. Der Anzeigetreiber im Benutzermodus ruft jedoch in der Regel pfnDeallocateCb als Reaktion auf einen Aufruf seiner DestroyResource - oder DestroyResource(D3D10) -Funktion auf.
Direct3D Version 9 Hinweis: Weitere Informationen zum Erstellen und Zerstören von Ressourcen finden Sie unter Behandeln von Ressourcenerstellung und -zerstörung.
Direct3D Version 11 Hinweis: Weitere Informationen dazu, wie der Treiber pfnDeallocateCb aufruft, finden Sie unter Änderungen von Direct3D 10.
Im folgenden Codebeispiel wird gezeigt, wie eine Ressource freigegeben wird.
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;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform | Desktop |
Kopfzeile | d3dumddi.h (include D3dumddi.h) |