PDD_GETDRIVERINFO fungsi panggilan balik (ddrawint.h)

Fungsi DdGetDriverInfo meminta driver untuk fungsionalitas DirectDraw dan Direct3D tambahan yang didukung driver.

Sintaks

PDD_GETDRIVERINFO PddGetdriverinfo;

DWORD PddGetdriverinfo(
  PDD_GETDRIVERINFODATA unnamedParam1
)
{...}

Parameter

unnamedParam1

Menunjuk ke struktur DD_GETDRIVERINFODATA yang berisi informasi yang diperlukan untuk melakukan kueri.

Nilai kembali

DdGetDriverInfo harus mengembalikan DDHAL_DRIVER_HANDLED.

Keterangan

Driver harus menerapkan DdGetDriverInfo untuk mengekspos fungsionalitas DirectDraw yang didukung driver yang tidak dapat dikembalikan melalui DrvEnableDirectDraw.

Fungsi DrvGetDirectDrawInfo driver mengembalikan penunjuk ke DdGetDriverInfo di anggota GetDriverInfo dari struktur DD_HALINFO .

Untuk memberi tahu DirectDraw bahwa anggota GetDriverInfo telah diatur dengan benar, driver juga harus mengatur bit DDHALINFO_GETDRIVERINFOSET anggota dwFlags dalam struktur DD_HALINFO.

DdGetDriverInfo harus menentukan apakah driver dan perangkat kerasnya mendukung panggilan balik atau kemampuan yang diminta oleh GUID yang ditentukan. Untuk semua GUID kecuali GUID_D3DParseUnknownCommandCallback, jika driver memberikan dukungan yang diminta, guid harus mengatur anggota struktur DD_GETDRIVERINFODATA berikut:

  • Atur dwActualSize ke ukuran dalam byte dari callback atau struktur kemampuan yang dikembalikan oleh driver.
  • Dalam memori yang dituju lpvData , inisialisasi anggota callback atau struktur kemampuan yang sesuai dengan fitur yang diminta sebagai berikut:
    • Atur anggota dwSize ke ukuran dalam byte struktur.
    • Untuk panggilan balik, atur pointer fungsi untuk menunjuk ke panggilan balik yang diimplementasikan oleh driver, dan atur bit di anggota dwFlags untuk menunjukkan fungsi apa yang didukung driver.
    • Untuk kemampuan, atur anggota struktur kemampuan yang sesuai dengan nilai yang didukung oleh driver/perangkat.
  • Mengembalikan DD_OK dalam ddRVal.
Jika driver tidak mendukung fitur, driver harus mengatur ddRVal ke DDERR_CURRENTLYNOTAVAIL dan kembali.

DirectDraw menginformasikan driver jumlah data yang diharapkan dalam anggota dwExpectedSize dari struktur DD_GETDRIVERINFODATA . Driver tidak boleh mengisi lebih banyak data daripada byte dwExpectedSize .

Untuk menghindari masalah menggunakan DdGetDriverInfo:

  • Jangan terapkan dependensi berdasarkan urutan di mana DdGetDriverInfo dipanggil. Misalnya, hindari langkah-langkah inisialisasi driver hooking ke DdGetDriverInfo.
  • Jangan mencoba untuk memastikan versi DirectDraw berdasarkan panggilan ke DdGetDriverInfo.
  • Jangan berasumsi apa pun tentang berapa kali DirectDraw akan memanggil driver, atau berapa kali DirectDraw akan meminta GUID tertentu. Ada kemungkinan bahwa DirectDraw akan memeriksa driver berulang kali dengan GUID yang sama. Menerapkan asumsi tentang hal ini di driver menghambat kompatibilitasnya dengan runtime mendatang.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header ddrawint.h (termasuk Winddi.h)

Lihat juga

DD_GETDRIVERINFODATA

DrvEnableDirectDraw

DrvGetDirectDrawInfo