KeQuerySystemTimePrecise 関数 (wdm.h)
KeQuerySystemTimePrecise ルーチンは、現在のシステム時刻を取得し、KeQuerySystemTime ルーチンよりも正確です。
構文
void KeQuerySystemTimePrecise(
[out] PLARGE_INTEGER CurrentTime
);
パラメーター
[out] CurrentTime
ルーチンが現在のシステム時刻を書き込むLARGE_INTEGER変数へのポインター。
戻り値
なし
解説
システム時間は、1601 年 1 月 1 日以降の 100 ナノ秒間隔のカウントです。 この値は、GMT タイム ゾーンに対して計算されます。 ローカル タイム ゾーンのこの値を調整するには、 ExSystemTimeToLocalTime ルーチンを呼び出します。
KeQuerySystemTimePrecise は KeQuerySystemTime ルーチンに似ていますが、より正確です。 KeQuerySystemTime によって報告されるシステム時間は、システム クロック タイマーの最新のティックに基づいています。 クロック タイマーは、システム クロックの割り込みを定期的に生成するハードウェア タイマーです。 クロック タイマー割り込みの間隔はシステム クロック ティックと呼ばれ、通常はハードウェア プラットフォームに応じて 500 マイクロ秒から 15.625 ミリ秒の範囲です。 KeQuerySystemTime によって取得されるシステム時刻値は、システム クロック ティック内で正確です。
KeQuerySystemTime よりも正確なシステム時刻値を提供するために、KeQuerySystemTimePrecise はシステム パフォーマンス カウンターを使用して、最後のクロック タイマー割り込み以降の経過時間を測定し、この時刻をクロック タイマーカウントから計算するシステム クロック時間に加算します。 KeQuerySystemTimePrecise によって報告されるシステム時間は、1 マイクロ秒以内に正確です。
一部のハードウェア プラットフォームでは、 KeQuerySystemTimePrecise 呼び出しが KeQuerySystemTime 呼び出しよりも遅くなる場合があります。 その理由は、 KeQuerySystemTimePrecise がパフォーマンス カウンターを読み取り、追加の遅延が発生する可能性があるということです。 詳細については、「 KeQueryPerformanceCounter」を参照してください。
KeQueryTimeIncrement ルーチンを呼び出して、システム クロック ティックの継続時間を決定します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 任意のレベル |