Bagikan melalui


PFND3DDDI_CHECKCOUNTER fungsi panggilan balik (d3dumddi.h)

PFND3DDDI_CHECKCOUNTER dipanggil oleh runtime Direct3D untuk mengambil info yang menjelaskan penghitung. Harus diimplementasikan oleh Windows Display Driver Model (WDDM) 1.3 dan driver tampilan mode pengguna yang lebih baru.

Sintaks

PFND3DDDI_CHECKCOUNTER Pfnd3dddiCheckcounter;

HRESULT Pfnd3dddiCheckcounter(
  HANDLE hDevice,
  D3DDDIQUERYTYPE unnamedParam2,
  D3DDDI_COUNTER_TYPE *unnamedParam3,
  UINT *unnamedParam4,
  LPSTR unnamedParam5,
  UINT *pNameLength,
  LPSTR unnamedParam7,
  UINT *pUnitsLength,
  LPSTR unnamedParam9,
  UINT *pDescriptionLength
)
{...}

Parameter

hDevice

[in] Handel ke perangkat tampilan (konteks grafis).

unnamedParam2

[in] Penghitung adalah nilai jenis D3DDDIQUERYTYPE yang mengidentifikasi pengidentifikasi penghitung tempat info diambil.

unnamedParam3

[keluar] pType adalah penunjuk ke variabel yang menerima nilai enumerasi D3DDDI_COUNTER_TYPE yang mengidentifikasi jenis data yang dihasilkan penghitung.

unnamedParam4

pActiveCounters [out] pActiveCounters adalah penunjuk ke variabel yang menerima jumlah penghitung yang aktif secara bersamaan yang dialokasikan untuk pembuatan pengidentifikasi penghitung yang diidentifikasi oleh parameter Penghitung .

unnamedParam5

[out, opsional] pszName adalah penunjuk opsional bahwa driver mengembalikan string yang dihentikan NULL yang berisi nama pengidentifikasi penghitung.

Dapat berupa NULL, dalam hal ini aplikasi tidak memerlukan nama.

pNameLength

[in, out, opsional] Penunjuk opsional ke variabel yang menerima ukuran, dalam byte, dari string yang dihentikan NULL yang ditentukan parameter pszName .

Berikut adalah batasan pada nilai parameter pNameLength dan pszName :

  • pNameLength dapat berupa NULL, dalam hal ini aplikasi tidak memerlukan nama atau panjang nama.
  • Jika pszName adalah NULL dan pNameLength bukan NULL, nilai input pNameLength diabaikan, dan panjang string (termasuk mengakhiri karakter NULL) harus dikembalikan melalui parameter pNameLength .
  • Jika pszName dan pNameLength bukan NULL, driver harus memeriksa nilai input pNameLength untuk memastikan bahwa ada cukup ruang di buffer yang dialokasikan, dan kemudian panjang string pszName (termasuk mengakhiri karakter NULL) dilewatkan melalui parameter pNameLength .

unnamedParam7

[out, opsional] pszUnits adalah penunjuk opsional bahwa driver mengembalikan string yang dihentikan NULL yang berisi nama unit yang diukur pengidentifikasi penghitung.

Dapat berupa NULL, dalam hal ini aplikasi tidak memerlukan info unit. Lihat info selengkapnya dalam penjelasan parameter pUnitsLength .

pUnitsLength

[in, out, opsional] pUnitsLength adalah penunjuk opsional ke variabel yang menerima ukuran, dalam byte, dari string yang dihentikan NULL yang ditentukan parameter pszUnits .

Berikut adalah batasan nilai parameter pUnitsLength dan pszUnits :

  • pUnitsLength dapat berupa NULL, dalam hal ini aplikasi tidak memerlukan nama unit atau panjang nama unit.
  • Jika pszUnits adalah NULL dan pUnitsLength bukan NULL, nilai input pUnitsLength diabaikan, dan panjang string (termasuk mengakhiri karakter NULL) harus dikembalikan melalui parameter pUnitsLength .
  • Jika pszUnits dan pUnitsLength bukan NULL, driver harus memeriksa nilai input pUnitsLength untuk memastikan bahwa ada cukup ruang di buffer yang dialokasikan, dan kemudian panjang string pszUnits (termasuk mengakhiri karakter NULL) dilewatkan melalui parameter pUnitsLength .

unnamedParam9

[out, opsional] pszDescription adalah penunjuk opsional bahwa driver mengembalikan string yang dihentikan NULL yang berisi deskripsi apa yang diukur pengidentifikasi penghitung.

Dapat berupa NULL, dalam hal ini aplikasi tidak memerlukan info deskripsi. Lihat info selengkapnya dalam penjelasan parameter pDescriptionLength .

pDescriptionLength

[in, out, opsional] pDescriptionLength adalah penunjuk opsional ke variabel yang menerima ukuran, dalam byte, dari string yang dihentikan NULL yang ditentukan parameter pszDescription .

Berikut adalah batasan nilai parameter pDescriptionLength dan pszDescription :

  • pDescriptionLength dapat berupa NULL, dalam hal ini aplikasi tidak memerlukan nama unit atau panjang nama unit.
  • Jika pszDescription adalah NULL dan pDescriptionLength bukan NULL, nilai input pDescriptionLength diabaikan, dan panjang string (termasuk mengakhiri karakter NULL) harus dikembalikan melalui parameter pDescriptionLength .
  • Jika pszDescription dan pDescriptionLength bukan NULL, driver harus memeriksa nilai input pDescriptionLength untuk memastikan bahwa ada cukup ruang di buffer yang dialokasikan, dan kemudian panjang string pszDescription (termasuk mengakhiri karakter NULL) dilewatkan melalui parameter pDescriptionLength .

Menampilkan nilai

Jika rutinitas ini berhasil, rutinitas akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan, termasuk yang berikut ini:

Menampilkan kode Deskripsi
E_INVALIDARG Penghitung yang bergantung pada perangkat di luar rentang diminta, atau panjang string tidak cukup besar agar buffer berisi seluruh string. Meskipun semua string yang digunakan dalam fungsi ini didasarkan pada Unicode, string selalu berada di lokal bahasa Inggris dan tidak dilokalkan ke lokal lain.

Keterangan

Fungsi ini harus berperilaku mirip dengan fungsi CheckCounter yang mendukung Microsoft Direct3D 10 dan yang lebih baru.

Penghitung biasanya digunakan oleh alat yang menangkap bingkai dan memutarnya kembali beberapa kali. Pass yang merekam info waktu yang akurat terpisah dari pass lain. Di kemudian hari, sekumpulan penghitung yang berbeda digunakan setiap kali. Prioritasnya adalah mendapatkan korelasi hasil penghitung yang akurat untuk menarik panggilan, dan overhead yang dikeluarkan selama pemutaran dapat dikorbankan. Driver harus menyisipkan panggilan flush atau panggilan tunggu diam untuk memastikan korelasi yang akurat.

Biasanya aplikasi dapat secara bersamaan hanya memantau sejumlah kecil kemungkinan penghitung asli, yang mungkin berjumlah ratusan. Selain itu, driver harus menunjukkan jumlah penghitung aktif yang digunakan dengan memantau setiap ID penghitung yang didukung dari enumerasi D3DDDIQUERYTYPE (ID penghitung terkenal dan ID penghitung khusus perangkat). Misalnya, driver dapat menunjukkan bahwa memantau variabel FillRateUtilized memerlukan 3 dari maksimum 4 penghitung aktif secara bersamaan (ditunjukkan oleh parameter pActiveCounters ). Oleh karena itu, aplikasi juga dapat memantau ID penghitung lain, selama ID penghitung tersebut memerlukan satu atau lebih sedikit penghitung aktif.

Jika ID penghitung selalu dapat dipantau (dan tidak mengganggu pemantauan ID penghitung lainnya), jumlah penghitung aktif simultan yang diperlukan oleh ID penghitung bisa nol.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8.1
Server minimum yang didukung Windows Server 2012 R2
Target Platform Desktop
Header d3dumddi.h (termasuk D3d10umddi.h)

Lihat juga

CheckCounter

D3DDDIQUERYTYPE