Partager via


NdisGetCurrentProcessorCounts, fonction (ndis.h)

La fonction NdisGetCurrentProcessorCounts retourne les nombres pour le processeur actuel qu’un pilote peut utiliser pour déterminer l’utilisation du processeur pour 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 du mode noyau plus heure du 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

Aucun

Remarques

NdisGetCurrentProcessorCounts retourne le nombre d’inactivités 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 chargement de l’UC depuis l’appel immédiatement précédent à cette fonction. Si le processeur a été fortement chargé, un tel pilote peut modifier la façon dont il gère certaines opérations pour améliorer les performances du pilote.

Remarque 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 disposez d’une estimation précise de l’utilisation du processeur, il existe d’autres facteurs à prendre en compte, tels que ce qui provoque la charge sur le processeur et l’importance de cette charge particulière.
 
Un pilote peut appeler NdisGetCurrentProcessorCounts régulièrement 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 est l’utilisation du processeur en 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 qu’élément nième 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 comme nième élément dans un tableau

Exigences

Exigence Valeur
client minimum 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 (voir NdisGetCurrentProcessorCounts (NDIS 5.1)) dans Windows XP et versions ultérieures.
plateforme cible Universel
d’en-tête ndis.h (include Ndis.h)
bibliothèque Ndis.lib
IRQL <= DISPATCH_LEVEL
règles de conformité DDI Irql_Miscellaneous_Function(ndis)