次の方法で共有


KeQueryUnbiasedInterruptTime 関数 (wdm.h)

KeQueryUnbiasedInterruptTime ルーチンは、システム割り込み時間数の現在の値を返します。

構文

ULONGLONG KeQueryUnbiasedInterruptTime();

戻り値

KeQueryUnbiasedInterruptTime は、現在の割り込み時間数を 100 ナノ秒単位で返します。 カウントは、コンピューターの起動時に 0 から始まります。 この数に更新は、コンピューターがスリープ状態になったときに中断され、コンピューターが起動したときに再開されます。

注釈

カーネル モード ドライバーは、比較的細かい期間を測定するには、このルーチンを呼び出すことができます。

このルーチンは、オペレーティング システムが最後に開始されてからの時間であるシステム割り込み時間を返します。 割り込み時間カウントは、オペレーティング システムが起動すると 0 から始まり、クロック割り込みごとにクロック ティックの長さだけインクリメントされます。 ハードウェアの違いなど、さまざまな理由で、システム クロック ティックの長さはコンピューターによって異なる場合があります。 KeQueryTimeIncrement ルーチンを呼び出して、システム クロック ティックのサイズを決定します。

KeQueryUnbiasedInterruptTime ルーチンと KeQueryInterruptTime ルーチンは似ていますが、オペレーティング システムが割り込み時間数の更新を中断する期間を考慮する方法は異なります。 たとえば、コンピューターがシステム スリープ状態の間、これらの更新プログラムは中断されます。 カウントの更新が中断される期間を補うために、 KeQueryInterruptTime は、生の割り込み時間カウントにバイアスカウントを追加することによって計算されるバイアスカウント値を返します。 バイアス数は、カウントが中断されている間にオペレーティング システムが見逃した割り込み時間数に対するすべての更新の推定合計です。 これに対し、 KeQueryUnbiasedInterruptTime は未加工の偏りのないカウントを返します。

KeQuerySystemTime ルーチンとは異なり、KeQueryUnbiasedInterruptTime は、システム時刻を設定またはリセットする操作の影響を受けず、カウント値を返します。 さらに、 KeQuerySystemTime によって報告されるシステム時間は、通常、約 10 ミリ秒ごとに更新されます。 これに対し、 KeQueryUnbiasedInterruptTime によって返されるカウントは、システム クロック ティックごとに少なくとも 1 回更新されます。

Windows 2000 以降のバージョンの Windows オペレーティング システムでは、 KeQueryPerformanceCounter ルーチンは、オペレーティング システムから使用できる最も詳細な実行数を提供します。

要件

要件
サポートされている最小のクライアント Windows 7 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル

こちらもご覧ください

KeQueryInterruptTime

KeQueryInterruptTimePrecise

KeQueryPerformanceCounter

KeQuerySystemTime

KeQueryTimeIncrement