PFND3DDDI_SETASYNCCALLBACKSCB fungsi panggilan balik (d3dumddi.h)
Fungsi pfnSetAsyncCallbacksCb memberi tahu runtime Microsoft Direct3D apakah runtime akan memulai atau berhenti menerima panggilan ke fungsi panggilan balik runtime dari utas pekerja.
Sintaks
PFND3DDDI_SETASYNCCALLBACKSCB Pfnd3dddiSetasynccallbackscb;
HRESULT Pfnd3dddiSetasynccallbackscb(
HANDLE hDevice,
BOOL Enable
)
{...}
Parameter
hDevice
Handel ke perangkat tampilan (konteks grafis).
Enable
Nilai Boolean yang menentukan apakah runtime akan memulai atau berhenti menerima panggilan ke fungsi panggilan balik runtime dari utas pekerja. TRUE menunjukkan bahwa runtime akan mulai menerima panggilan ke fungsi panggilan baliknya dari utas pekerja; FALSE menunjukkan bahwa runtime akan berhenti menerima panggilan ke fungsi panggilan baliknya dari utas pekerja.
Menampilkan nilai
pfnSetAsyncCallbacksCb mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
S_OK | Runtime Direct3D berhasil diberi tahu. |
E_INVALIDARG | Parameter divalidasi dan ditentukan salah. |
Fungsi ini mungkin juga mengembalikan nilai HRESULT lainnya.
Keterangan
Jika driver tampilan mode pengguna menerapkan pengoptimalan multi-prosesornya sendiri (yaitu, driver membuat utas pekerja dan memproses perintah dalam utas tersebut), driver harus memanggil pfnSetAsyncCallbacksCb untuk memberi tahu runtime Direct3D apakah runtime akan memulai atau berhenti menerima panggilan ke fungsi panggilan balik runtime dari utas pekerja. Selain itu, driver tersebut tidak boleh menerapkan fungsi LockAsync, UnlockAsync, dan Rename . Ini memastikan bahwa runtime tidak mencoba menggunakan pengoptimalan multi-prosesornya sendiri.
Driver tampilan mode pengguna dapat memanggil pfnSetAsyncCallbacksCb hanya pada utas aplikasi utama (yaitu, utas yang dipanggil ke driver). Utas pekerja driver tidak dapat memanggil pfnSetAsyncCallbacksCb. Kapan saja, hanya satu utas yang mereferensikan perangkat penyajian tertentu yang dapat berjalan di salah satu fungsi panggilan balik runtime.
Sebelum driver tampilan mode pengguna memanggil salah satu fungsi panggilan balik runtime pada utas selain utas aplikasi utama, driver harus meneruskan TRUE ke parameter Aktifkan dalam panggilan ke pfnSetAsyncCallbacksCb. Sebelum driver tampilan mode pengguna memanggil salah satu fungsi panggilan balik runtime pada utas aplikasi utama, driver harus meneruskan FALSE ke parameter Aktifkan dalam panggilan ke pfnSetAsyncCallbacksCb.
Dalam implementasi Flush untuk setiap perangkat penyajian, driver memanggil pfnSetAsyncCallbacksCb dan meneruskan FALSE ke parameter Aktifkan .
Ketika driver meneruskan TRUE ke parameter Aktifkan dalam panggilan ke pfnSetAsyncCallbacksCb, runtime menempatkan dirinya dalam keadaan di mana ia tidak segera merespons situasi yang hilang perangkat dalam fungsi panggilan baliknya. Sebaliknya, ketika runtime mendeteksi perangkat hilang dalam fungsi panggilan balik saat dalam status ini, runtime akan mengatur sedikit yang menunjukkan bahwa peristiwa terjadi. Ketika driver meneruskan FALSE ke parameter Aktifkan dalam panggilan ke pfnSetAsyncCallbacksCb, runtime memeriksa bit untuk menentukan apakah perangkat hilang terjadi. Jika bit diatur, runtime melakukan penanganan perangkat yang hilang secara khas. Setelah titik ini, driver tidak lagi menerima sebagian besar panggilan ke fungsinya dari runtime.
Hanya versi DirectX 9 dan DirectX 9L dari runtime yang mendukung pfnSetAsyncCallbacksCb. DirectX 10 dan versi runtime yang lebih baru mengatur anggota pfnSetAsyncCallbacksCb dari struktur D3DDDI_DEVICECALLBACKS ke NULL saat runtime memanggil fungsi CreateDevice (D3D10) driver tampilan mode pengguna untuk membuat perangkat penyajian.
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) |