Partager via


NdisGetCurrentProcessorCounts, fonction (ndis.h)

La fonction NdisGetCurrentProcessorCounts retourne des nombres pour le processeur actuel qu’un pilote peut utiliser pour déterminer l’utilisation du processeur pendant un intervalle de temps particulier.

Syntaxe

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

Paramètres

[out] pIdleCount

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne le temps d’inactivité cumulé pour le processeur depuis le démarrage du système.

[out] pKernelAndUser

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne le temps de traitement cumulé (temps en mode noyau plus temps en mode utilisateur) pour le processeur depuis le démarrage du système.

[out] pIndex

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne un index de base zéro qui identifie le processeur au sein de l’ordinateur.

Valeur de retour

None

Remarques

NdisGetCurrentProcessorCounts retourne les nombres d’inactivité et d’utilisation du processeur que l’appelant peut utiliser pour déterminer l’utilisation du processeur actuel. La valeur d’utilisation du processeur indique le niveau de chargement du processeur depuis l’appel immédiatement précédent à cette fonction. Si le processeur a été lourdement chargé, un tel pilote peut modifier la façon dont il gère certaines opérations pour améliorer les performances du pilote.

Note L’estimation de l’utilisation du processeur est difficile et les pilotes ne le font généralement pas. Notez que, même si vous avez une estimation précise de l’utilisation du processeur, vous devez prendre en compte d’autres facteurs, tels que la cause de la charge sur le processeur et l’importance de cette charge particulière.
 
Un pilote peut appeler régulièrement NdisGetCurrentProcessorCounts dans une fonction de minuteur. Le pilote peut utiliser le calcul suivant pour déterminer l’utilisation du processeur pour un multiple de l’intervalle du minuteur :
CpuUsage = 100-100*(Idle - Idle[n])/(KernelAndUser - KernelAndUser[n]);

où :

  • CpuUsage correspond à l’utilisation du processeur en tant que pourcentage du temps d’intervalle total
  • Idle est la valeur IdleCount retournée par l’appel le plus récent à NdisGetCurrentProcessorCounts
  • Idle[n] est une valeur IdleCount retournée par un appel précédent, stockée en tant que nième élément dans un tableau
  • KernelandUser est la valeur KernelAndUser retournée par l’appel le plus récent à NdisGetCurrentProcessorCounts
  • KernelandUser[n] est la valeur KernelandUser retournée par un appel précédent, stockée en tant que nième élément dans un tableau

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge pour les pilotes NDIS 6.0 et versions ultérieures dans Windows Vista et versions ultérieures. Pris en charge pour les pilotes NDIS 5.1 (consultez NdisGetCurrentProcessorCounts (NDIS 5.1)) dans Windows XP et versions ultérieures.
Plateforme cible Universal
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI Irql_Miscellaneous_Function(ndis)