次の方法で共有


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 使用率の割合です
  • Idle は、NdisGetCurrentProcessorCounts の最新の呼び出しによって返される IdleCount 値です。
  • Idle[n] は、前の呼び出しによって返される IdleCount 値で、配列内の n 番目の要素として格納されます。
  • KernelandUser は、NdisGetCurrentProcessorCounts への最新の呼び出しによって返される KernelAndUser 値です。
  • KernelandUser[n] は、前の呼び出しによって返された KernelandUser 値であり、配列内の n 番目の要素として格納されます

必要条件

要件 価値
サポートされる最小クライアント 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)