NdisGetCurrentProcessorCounts 함수(ndis.h)

NdisGetCurrentProcessorCounts 함수는 드라이버가 특정 시간 간격에 대한 CPU 사용량을 확인하는 데 사용할 수 있는 현재 프로세서의 수를 반환합니다.

구문

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

매개 변수

[out] pIdleCount

시스템이 부팅된 이후 이 함수가 프로세서의 누적 유휴 시간을 반환하는 호출자 제공 변수에 대한 포인터입니다.

[out] pKernelAndUser

시스템이 부팅된 후 이 함수가 프로세서에 대한 누적 처리 시간(커널 모드 시간 및 사용자 모드 시간)을 반환하는 호출자 제공 변수에 대한 포인터입니다.

[out] pIndex

이 함수가 컴퓨터 내의 프로세서를 식별하는 0부터 시작하는 인덱스를 반환하는 호출자 제공 변수에 대한 포인터입니다.

반환 값

없음

설명

NdisGetCurrentProcessorCounts 는 호출자가 현재 프로세서의 CPU 사용량을 확인하는 데 사용할 수 있는 유휴 및 CPU 사용 횟수를 반환합니다. CPU 사용률 값은 이 함수에 대한 바로 이전 호출 이후 CPU가 로드된 방식을 나타냅니다. CPU가 많이 로드된 경우 이러한 드라이버는 특정 작업을 처리하는 방법을 변경하여 드라이버 성능을 향상시킬 수 있습니다.

참고 프로세서 사용량을 예측하는 것은 어렵고 드라이버는 일반적으로 이를 수행하지 않습니다. 프로세서 사용량에 대한 정확한 추정치가 있더라도 CPU 부하의 원인 및 특정 부하가 얼마나 중요한지 등 고려해야 할 다른 요인이 있습니다.
 
드라이버는 타이머 함수 내에서 주기적으로 NdisGetCurrentProcessorCounts 를 호출할 수 있습니다. 드라이버는 다음 계산을 사용하여 타이머 간격의 배수에 대한 CPU 사용량을 확인할 수 있습니다.
CpuUsage = 100-100*(Idle - Idle[n])/(KernelAndUser - KernelAndUser[n]);

여기서

  • CpuUsage는 총 간격 시간의 백분율로 CPU 사용량입니다.
  • 유휴 는 NdisGetCurrentProcessorCounts에 대한 최신 호출에서 반환된 IdleCount 값입니다.
  • Idle[n]은 배열의 n번째 요소로 저장된 이전 호출에서 반환된 IdleCount 값입니다.
  • KernelandUser는 NdisGetCurrentProcessorCounts에 대한 최신 호출에서 반환된 KernelAndUser 값입니다.
  • KernelandUser[n]는 배열의 n번째 요소로 저장된 이전 호출에서 반환된 KernelandUser 값입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상에서 NDIS 6.0 이상 드라이버에 대해 지원됩니다. Windows XP 이상에서 NDIS 5.1 드라이버(NdisGetCurrentProcessorCounts(NDIS 5.1) 참조)에 대해 지원됩니다.
대상 플랫폼 유니버설
헤더 ndis.h(Ndis.h 포함)
라이브러리 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 Irql_Miscellaneous_Function(ndis)