Fungsi NdisGetCurrentProcessorCounts (ndis.h)

Fungsi NdisGetCurrentProcessorCounts mengembalikan hitungan untuk prosesor saat ini yang dapat digunakan driver untuk menentukan penggunaan CPU untuk interval waktu tertentu.

Sintaks

void NdisGetCurrentProcessorCounts(
  [out] PULONG pIdleCount,
  [out] PULONG pKernelAndUser,
  [out] PULONG pIndex
);

Parameter

[out] pIdleCount

Penunjuk ke variabel yang disediakan penelepon di mana fungsi ini mengembalikan waktu menganggur kumulatif untuk prosesor sejak sistem di-boot.

[out] pKernelAndUser

Penunjuk ke variabel yang disediakan penelepon di mana fungsi ini mengembalikan waktu pemrosesan kumulatif (waktu mode kernel ditambah waktu mode pengguna) untuk prosesor sejak sistem di-boot.

[out] pIndex

Penunjuk ke variabel yang disediakan penelepon di mana fungsi ini mengembalikan indeks berbasis nol yang mengidentifikasi prosesor dalam komputer.

Nilai kembali

Tidak ada

Keterangan

NdisGetCurrentProcessorCounts mengembalikan jumlah penggunaan idle dan CPU yang dapat digunakan pemanggil untuk menentukan penggunaan CPU untuk prosesor saat ini. Nilai pemanfaatan CPU menunjukkan seberapa dimuat CPU sejak panggilan sebelumnya ke fungsi ini. Jika CPU sangat dimuat, driver seperti itu dapat mengubah caranya menangani operasi tertentu untuk meningkatkan performa driver.

Catatan Memperkirakan penggunaan prosesor sulit, dan driver umumnya tidak melakukannya. Perhatikan bahwa, bahkan jika Anda memiliki perkiraan penggunaan prosesor yang akurat, ada faktor lain yang perlu Anda perhitungkan, seperti apa yang menyebabkan beban pada CPU - dan seberapa penting beban tertentu.
 
Driver mungkin memanggil NdisGetCurrentProcessorCounts secara berkala dalam fungsi timer. Driver dapat menggunakan perhitungan berikut untuk menentukan penggunaan CPU untuk kelipatan interval timer:
CpuUsage = 100-100*(Idle - Idle[n])/(KernelAndUser - KernelAndUser[n]);

Dimana:

  • CpuUsage adalah penggunaan CPU sebagai persentase dari total waktu interval
  • Idle adalah nilai IdleCount yang dikembalikan oleh panggilan terbaru ke NdisGetCurrentProcessorCounts
  • Idle[n] adalah nilai IdleCount yang dikembalikan oleh panggilan sebelumnya, disimpan sebagai elemen ke-n dalam array
  • KernelandUser adalah nilai KernelAndUser yang dikembalikan oleh panggilan terbaru ke NdisGetCurrentProcessorCounts
  • KernelandUser[n] adalah nilai KernelandUser yang dikembalikan oleh panggilan sebelumnya, disimpan sebagai elemen ke-n dalam array

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Didukung untuk driver NDIS 6.0 dan yang lebih baru di Windows Vista dan yang lebih baru. Didukung untuk driver NDIS 5.1 (lihat NdisGetCurrentProcessorCounts (NDIS 5.1)) di Windows XP dan yang lebih baru.
Target Platform Universal
Header ndis.h (termasuk Ndis.h)
Pustaka Ndis.lib
IRQL <= DISPATCH_LEVEL
Aturan kepatuhan DDI Irql_Miscellaneous_Function(ndis)