次の方法で共有


KeQueryUnbiasedInterruptTime 関数 (wdm.h)

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

構文

ULONGLONG KeQueryUnbiasedInterruptTime();

戻り値

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

備考

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

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

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

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows 7 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任意のレベル

関連項目

KeQueryInterruptTime

KeQueryInterruptTimePrecise

KeQueryPerformanceCounter

KeQuerySystemTime

KeQueryTimeIncrement