次の方法で共有


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)」を参照) でサポートされています。
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 Irql_Miscellaneous_Function(ndis)