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) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 |