Função NdisGetCurrentProcessorCounts (ndis.h)

A função NdisGetCurrentProcessorCounts retorna contagens para o processador atual que um driver pode usar para determinar o uso da CPU para um intervalo de tempo específico.

Sintaxe

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

Parâmetros

[out] pIdleCount

Um ponteiro para uma variável fornecida pelo chamador na qual essa função retorna o tempo ocioso cumulativo para o processador desde que o sistema foi inicializado.

[out] pKernelAndUser

Um ponteiro para uma variável fornecida pelo chamador na qual essa função retorna o tempo de processamento cumulativo (tempo de modo kernel mais tempo de modo de usuário) para o processador desde que o sistema foi inicializado.

[out] pIndex

Um ponteiro para uma variável fornecida pelo chamador na qual essa função retorna um índice baseado em zero que identifica o processador dentro do computador.

Retornar valor

Nenhum

Comentários

NdisGetCurrentProcessorCounts retorna contagens ociosas e de uso de CPU que o chamador pode usar para determinar o uso da CPU para o processador atual. O valor de utilização da CPU indica como a CPU foi carregada desde a chamada imediatamente anterior a essa função. Se a CPU foi fortemente carregada, esse driver pode alterar a forma como lida com determinadas operações para melhorar o desempenho do driver.

Nota Estimar o uso do processador é difícil e os drivers geralmente não o fazem. Observe que, mesmo que você tenha uma estimativa precisa do uso do processador, há outros fatores que você precisa levar em conta, como o que está causando a carga na CPU – e o quão importante essa carga específica pode ser.
 
Um driver pode chamar NdisGetCurrentProcessorCounts periodicamente dentro de uma função de temporizador. O driver pode usar o seguinte cálculo para determinar o uso da CPU para um múltiplo intervalo de temporizador:
CpuUsage = 100-100*(Idle - Idle[n])/(KernelAndUser - KernelAndUser[n]);

em que:

  • CpuUsage é o uso da CPU como uma porcentagem do tempo de intervalo total
  • Idle é o valor IdleCount retornado pela chamada mais recente para NdisGetCurrentProcessorCounts
  • Idle[n] é um valor IdleCount retornado por uma chamada anterior, armazenado como o nº elemento em uma matriz
  • KernelandUser é o valor KernelAndUser retornado pela chamada mais recente para NdisGetCurrentProcessorCounts
  • KernelandUser[n] é o valor kernelandUser retornado por uma chamada anterior, armazenado como o nº elemento em uma matriz

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte para drivers NDIS 6.0 e posteriores no Windows Vista e posteriores. Com suporte para drivers NDIS 5.1 (consulte NdisGetCurrentProcessorCounts (NDIS 5.1)) no Windows XP e posteriores.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI Irql_Miscellaneous_Function(ndis)