Bagikan melalui


PFND3DDDI_DEALLOCATECB fungsi panggilan balik (d3dumddi.h)

Fungsi panggilan balik pfnDeallocateCb merilis alokasi atau objek sumber daya mode kernel jika objek sumber daya dibuat.

Sintaks

PFND3DDDI_DEALLOCATECB Pfnd3dddiDeallocatecb;

HRESULT Pfnd3dddiDeallocatecb(
  HANDLE hDevice,
  const D3DDDICB_DEALLOCATE *unnamedParam2
)
{...}

Parameter

hDevice

Handel ke perangkat tampilan (konteks grafis).

unnamedParam2

pData [in]

Penunjuk ke struktur D3DDDICB_DEALLOCATE yang menjelaskan sumber daya yang akan dirilis.

Menampilkan nilai

pfnDeallocateCb mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
S_OK Memori berhasil dirilis.
E_INVALIDARG Parameter divalidasi dan ditentukan salah.

Fungsi ini mungkin juga mengembalikan nilai HRESULT lainnya.

Keterangan

Driver tampilan mode pengguna dapat melepaskan alokasi dengan cara berikut:

  • Secara individual, dengan mengatur anggota hResource dari struktur D3DDDICB_DEALLOCATE yang ditunjukkan oleh pData ke NULL dan mengisi array di anggota HandleList D3DDDICB_DEALLOCATE dengan handel alokasi yang akan dirilis
  • Dalam grup, dengan mengatur hResource ke handel sumber daya yang alokasinya akan dirilis. Jika hResource bukan NULL, anggota HandleList dan NumAllocations dari D3DDDICB_DEALLOCATE diabaikan.
Perhatikan bahwa jika driver tampilan mode pengguna mengatur hResource ke NULL dan mengisi semua elemen array di HandleList untuk melepaskan semua alokasi, driver kemudian harus memanggil fungsi pfnDeallocateCb lagi untuk hanya merilis sumber daya dengan mengatur hResource ke handel ke sumber daya.

Perhatikan bahwa fungsi pfnDeallocateCb berbeda dari fungsi DestroyResource atau DestroyResource(D3D10) driver tampilan pengguna. Namun, driver tampilan mode pengguna biasanya memanggil pfnDeallocateCb sebagai respons terhadap panggilan ke fungsi DestroyResource atau DestroyResource(D3D10).

Catatan Direct3D Versi 9: Untuk informasi selengkapnya tentang membuat dan menghancurkan sumber daya, lihat Menangani Pembuatan dan Penghancuran Sumber Daya.

Catatan Direct3D Versi 11: Untuk informasi selengkapnya tentang cara driver memanggil pfnDeallocateCb, lihat Perubahan dari Direct3D 10.

Contoh kode berikut menunjukkan cara merilis sumber daya.

    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;
    }

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows Vista dan versi yang lebih baru dari sistem operasi Windows.
Target Platform Desktop
Header d3dumddi.h (termasuk D3dumddi.h)

Lihat juga

D3DDDICB_DEALLOCATE

D3DDDI_DEVICECALLBACKS

DestroyResource

DestroyResource(D3D10)

pfnAllocateCb