Bagikan melalui


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.

Catatan Versi DirectX yang lebih lama dari 9 tidak mendukung pengoptimalan beberapa prosesor.
 
Driver dapat memanggil fungsi panggilan balik runtime hanya dari utas pekerja jika runtime sebelumnya mengatur anggota pfnSetAsyncCallbacksCb D3DDDI_DEVICECALLBACKS ke non-NULL dalam panggilan ke fungsi CreateDevice driver.

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

CreateDevice

CreateDevice(D3D10)

D3DDDI_DEVICECALLBACKS

Flush

LockAsync

Mengubah Nama

UnlockAsync