KeQueryInterruptTimePrecise 函数 (wdm.h)

KeQueryInterruptTimePrecise 例程返回系统 中断时间 计数的当前值,准确性在微秒内。

语法

ULONG64 KeQueryInterruptTimePrecise(
  [out] PULONG64 QpcTimeStamp
);

参数

[out] QpcTimeStamp

指向ULONG64变量的指针,例程在其中写入用于内插返回值的性能计数器值。

返回值

当前中断时间计数(以 100 纳秒为单位)。

言论

KeQueryInterruptTimePrecise 返回系统的当前中断时间,这是自作系统上次启动以来的时间。 KeQueryInterruptTimePrecise 类似于 KeQueryInterruptTime 例程,但更精确。

KeQueryInterruptTime 报告的中断时间基于系统时钟计时器的最新时钟周期。 时钟计时器是定期为系统时钟生成中断的硬件计时器。 时钟计时器中断之间的统一周期称为系统时钟计时周期,通常介于 500 微秒到 15.625 毫秒之间,具体取决于硬件平台。 KeQueryInterruptTime 检索的中断时间值在系统时钟周期内准确。

若要提供比 KeQueryInterruptTime更精确的中断时间值,KeQueryInterruptTimePrecise 使用系统性能计数器来测量自上次时钟计时器中断以来经过的时间,并将这一时间添加到与最新时钟时间关联的中断时间。 KeQueryInterruptTimePrecise 报告的中断时间精确到微秒内。

在某些硬件平台上,KeQueryInterruptTimePrecise 调用可能比 KeQueryInterruptTime 调用慢。 原因是 KeQueryInterruptTimePrecise 读取性能计数器,这可能会带来额外的延迟。 有关详细信息,请参阅 KeQueryPerformanceCounter

调用 KeQueryTimeIncrement 例程来确定系统时钟时钟刻度的大小。

精确的中断时间可用于在系统运行时测量非常精细的持续时间,因为设置或重置系统时间的作对系统中断时间计数没有影响。

但是,电源管理状态更改确实会影响系统中断时间计数。 在系统睡眠状态期间暂停中断时间计数的维护。 发生后续唤醒状态转换时,系统会将“偏差”值添加到中断时间计数,以补偿此类睡眠状态的估计持续时间。 KeQueryInterruptTimePrecise 返回的中断时间计数包括此偏差值。 若要获取无偏差的中断时间计数,请使用 KeQueryUnbiasedInterruptTime。 当前不可用的无偏差中断时间计数的精确版本。

要求

要求 价值
最低支持的客户端 从 Windows 8.1 开始可用。
目标平台 普遍
标头 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别

另请参阅

获取高分辨率时间戳

KeQueryInterruptTime

KeQueryTimeIncrement

KeQueryUnbiasedInterruptTime