Поделиться через


Функция KeQueryInterruptTime (wdm.h)

Подпрограмма KeQueryInterruptTime возвращает текущее значение счетчика времени прерываний системы с точностью до такта системных часов.

Синтаксис

ULONGLONG KeQueryInterruptTime();

Возвращаемое значение

KeQueryInterruptTime возвращает текущее число прерываний в единицах 100 наносекунд. Обновление этого возвращаемого значения обычно выполняется по крайней мере один раз для каждого такта системных часов.

Комментарии

Эта подпрограмма возвращает время прерывания системы, то есть количество времени с момента последнего запуска операционной системы. Счетчик времени прерываний начинается с нуля при запуске операционной системы и увеличивается при каждом прерывании часов на длину такта часов. По различным причинам, таким как аппаратные различия, длина тактов системных часов может отличаться на разных компьютерах. Вызовите подпрограмму KeQueryTimeIncrement , чтобы определить размер такта системных часов.

Для настройки производительности можно использовать KeQueryInterruptTime. Эта подпрограмма возвращает более точное измерение, чем подпрограмма KeQueryTickCount . Вызов KeQueryInterruptTime также имеет значительно меньшие издержки, чем вызов подпрограммы KeQueryPerformanceCounter .

Следовательно, время прерывания можно использовать для измерения очень детализированных длительности во время работы системы, так как операции, которые задают или сбрасывают системное время, не влияют на количество времени прерываний системы.

Однако изменения состояния управления питанием влияют на количество времени прерываний системы. Обслуживание счетчика времени прерываний приостанавливается во время состояния спящего режима системы. Когда происходит последующий переход состояния пробуждения, система добавляет значение "смещения" к счетчику времени прерывания, чтобы компенсировать предполагаемую продолжительность такого состояния спящего режима. Счетчик времени прерываний, возвращаемый KeQueryInterruptTime , включает это значение смещения. Чтобы получить беспристрастное количество времени прерываний, используйте подпрограмму KeQueryUnbiasedInterruptTime вместо KeQueryInterruptTime.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень

См. также раздел

Получение высокоточных меток времени

KeQueryInterruptTimePrecise

KeQueryPerformanceCounter

KeQueryTickCount

KeQueryTimeIncrement

KeQueryUnbiasedInterruptTime