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