Функция QueryUnbiasedInterruptTime (realtimeapiset.h)

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

Синтаксис

BOOL QueryUnbiasedInterruptTime(
  PULONGLONG UnbiasedTime
);

Параметры

UnbiasedTime

TBD

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

Если функция выполняется успешно, возвращается ненулевое значение. Если функция завершается сбоем из-за вызова с параметром NULL, возвращаемое значение равно нулю.

Комментарии

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

Счетчик времени прерываний, полученный функцией QueryUnbiasedInterruptTime , отражает только время, в течение которого система находится в рабочем состоянии. Таким образом, количество прерываний не является "смещенным" по времени, которое система проводит в спящем режиме или гибернации. Система использует время предвзятого прерывания для некоторых операций, например для обеспечения того, чтобы относительные таймеры, которые истекли бы во время сна, истечет сразу после пробуждения.

В отличие от системного времени, количество прерываний не подлежит корректировке пользователями или службой времени Windows. Приложения могут использовать счетчик времени прерываний для измерения более точной длительности, чем это возможно при использовании системного времени. Приложения, которым требуется более высокая точность, чем количество прерываний, должны использовать таймер с высоким разрешением. Используйте функцию QueryPerformanceFrequency для получения частоты таймера высокого разрешения и функцию QueryPerformanceCounter для получения значения счетчика.

Разрешение таймера, заданное функциями timeBeginPeriod и timeEndPeriod , влияет на разрешение функции QueryUnbiasedInterruptTime . Однако увеличение разрешения таймера не рекомендуется, так как это может снизить общую производительность системы и увеличить энергопотребление системы, не позволяя процессору переходить в состояния энергосбережения. Вместо этого приложения должны использовать таймер с высоким разрешением.

Примечание Функция QueryUnbiasedInterruptTime выдает разные результаты в отладочных сборках Windows , так как количество прерываний и число тактов расширены примерно на 49 дней. Это помогает выявлять ошибки, которые могут не возникать, пока система не будет работать в течение длительного времени. Проверенная сборка доступна подписчикам MSDN на веб-сайте Microsoft Developer Network (MSDN).
 
Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0601 или более поздней версии. Дополнительные сведения см. в разделе Использование заголовков Windows.

Требования

Требование Значение
Минимальная версия клиента Windows 7, Windows 8 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header realtimeapiset.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Время прерывания

QueryInterruptTime

QueryInterruptTimePrecise

QueryUnbiasedInterruptTimePrecise

Состояния питания системы

Служба времени Windows