KeQueryUnbiasedInterruptTime 函数 (wdm.h)
KeQueryUnbiasedInterruptTime 例程返回系统 中断时间 计数的当前值。
ULONGLONG KeQueryUnbiasedInterruptTime();
KeQueryUnbiasedInterruptTime 以 100 纳秒为单位返回当前中断时间计数。 计算机启动时,计数从零开始。 当计算机进入睡眠状态并在计算机唤醒时恢复对此计数的更新将暂停。
内核模式驱动程序可以调用此例程来测量相对精细的持续时间。
此例程返回系统中断时间,这是自上次启动作系统以来的时间。 当作系统启动时,中断时间计数从零开始,并在每个时钟中断时按时钟周期的长度递增。 由于各种原因(例如硬件差异),系统时钟时钟的长度在计算机之间可能会有所不同。 调用 KeQueryTimeIncrement 例程来确定系统时钟时钟刻度的大小。
KeQueryUnbiasedInterruptTime 和 KeQueryInterruptTime 例程相似,但它们在考虑作系统暂停中断时间计数更新的时间段的方式不同。 例如,当计算机处于系统睡眠状态时,这些更新将暂停。 为了补偿暂停计数更新的时间段,KeQueryInterruptTime 返回一个偏置计数值,它通过将偏差计数添加到原始中断时间计数来计算。 偏差计数是作系统在计数暂停时错过的中断时间计数的所有更新的估计总和。 相比之下,KeQueryUnbiasedInterruptTime 返回原始的无偏差计数。
与 KeQuerySystemTime 例程不同,KeQueryUnbiasedInterruptTime 返回计数值,该值不受设置或重置系统时间的作的影响。 此外,KeQuerySystemTime 报告的系统时间通常每隔 10 毫秒更新一次。 相比之下,KeQueryUnbiasedInterruptTime 返回的计数在每个系统时钟时钟周期中至少更新一次。
在 Windows 2000 及更高版本的 Windows作系统中,KeQueryPerformanceCounter 例程提供了作系统中提供的最佳粒度运行计数。
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 7 开始可用。 |
目标平台 | 普遍 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 |