次の方法で共有


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 によって報告されるシステム時間は、マイクロ秒単位で正確です。

一部のハードウェア プラットフォームでは、KeQuerySystemTimePrecise 呼び出しが、KeQuerySystemTime 呼び出しよりも遅くなる場合があります。 その理由は、KeQuerySystemTimePrecise がパフォーマンス カウンターを読み取り、追加の遅延が発生する可能性があるということです。 詳細については、「KeQueryPerformanceCounter 」を参照してください。

KeQueryTimeIncrement ルーチンを呼び出して、システム クロック ティックの継続時間を決定します。

必要条件

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

関連項目

ExSystemTimeToLocalTime

KeQueryPerformanceCounter

KeQuerySystemTime

KeQueryTickCount

KeQueryTimeIncrement