PFND3DDDI_SETPRIORITYCB fungsi panggilan balik (d3dumddi.h)

Fungsi pfnSetPriorityCb menetapkan tingkat prioritas sumber daya atau daftar alokasi.

Sintaks

PFND3DDDI_SETPRIORITYCB Pfnd3dddiSetprioritycb;

HRESULT Pfnd3dddiSetprioritycb(
  HANDLE hDevice,
  D3DDDICB_SETPRIORITY *unnamedParam2
)
{...}

Parameter

hDevice

Handel ke perangkat tampilan (konteks grafis).

unnamedParam2

pData [in]

Penunjuk ke struktur D3DDDICB_SETPRIORITY yang menjelaskan tingkat prioritas untuk mengatur sumber daya atau daftar alokasi.

Nilai kembali

pfnSetPriorityCb mengembalikan salah satu nilai berikut:

Menampilkan kode Deskripsi
S_OK Tingkat prioritas berhasil diatur.
E_INVALIDARG Parameter divalidasi dan ditentukan salah.

Fungsi ini mungkin juga mengembalikan nilai HRESULT lainnya.

Keterangan

Driver tampilan mode pengguna dapat memanggil fungsi pfnSetPriorityCb untuk mengatur prioritas sumber daya atau daftar alokasi yang mendasar. Jika tingkat prioritas sumber daya ditetapkan, semua alokasi yang termasuk dalam sumber daya diatur ke tingkat prioritas yang ditentukan. Biasanya, driver tampilan mode pengguna menetapkan prioritas sumber daya atau daftar alokasi setelah runtime Microsoft Direct3D memanggil fungsi SetPriority atau SetResourcePriorityDXGI driver tampilan pengguna untuk mengatur prioritas pengeluaran dari memori untuk sumber daya. Namun, driver tampilan mode pengguna dapat mengatur prioritas alokasi kapan saja.

Setelah aplikasi meminta untuk mengatur tingkat prioritas permukaan, driver tampilan mode pengguna harus mengatur sumber daya atau daftar alokasi yang sesuai ke tingkat prioritas yang ditentukan oleh aplikasi.

Catatan Tingkat prioritas hanya petunjuk untuk manajer memori video; mereka dapat diabaikan oleh manajer memori dalam berbagai kondisi.
 
Prioritas alokasi mendefinisikan kemungkinan bahwa alokasi tetap tinggal dan kemungkinan seberapa keras manajer memori video akan mencoba menghormati preferensi driver untuk penempatan alokasi. Tingkat prioritas berikut ditentukan dalam file header D3dukmdt.h:

Driver dapat menggunakan tingkat prioritas selain nilai yang ditentukan sebelumnya jika sesuai. Misalnya, menandai alokasi dengan tingkat prioritas 0x78000001 menunjukkan bahwa alokasi sedikit di atas normal.

Contoh

Contoh kode berikut menunjukkan cara mengatur tingkat prioritas.

HRESULT CD3DContext::SetPriority(CONST D3DDDIARG_SETPRIORITY* pSetPriority) {
    DWORD  dwSurfaceHandle = (DWORD)(DWORD_PTR)pSetPriority->hResource;
    CResource   &res = m_RTbl[dwSurfaceHandle];
    D3DDDICB_SETPRIORITY    setPri;
    UINT                    priority;

    priority = pSetPriority->Priority;

    memset(&setPri, 0, sizeof(setPri));

    setPri.hResource   = res.m_hResRuntime;
    setPri.pPriorities = &priority;

    return (m_d3dCallbacks.pfnSetPriorityCb(m_hD3D, &setPri));
}

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_SETPRIORITY

D3DDDI_DEVICECALLBACKS

DxgkCbCreateContextAllocation

SetPriority

SetResourcePriorityDXGI