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


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

Подпрограмма KeQuerySystemTimePrecise извлекает текущее системное время и является более точной, чем подпрограмма KeQuerySystemTime .

Синтаксис

void KeQuerySystemTimePrecise(
  [out] PLARGE_INTEGER CurrentTime
);

Параметры

[out] CurrentTime

Указатель на переменную LARGE_INTEGER, в которую подпрограмма записывает текущее системное время.

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

None

Remarks

Системное время — это число 100-наносекундных интервалов с 1 января 1601 года. Это значение вычисляется для часового пояса GMT. Чтобы настроить это значение для местного часового пояса, вызовите подпрограмму ExSystemTimeToLocalTime .

KeQuerySystemTimePrecise похожа на подпрограмму KeQuerySystemTime , но является более точной. Системное время, сообщаемое KeQuerySystemTime , основано на последнем тактовом таймере системных часов. Таймер часов — это аппаратный таймер, который периодически создает прерывания для системных часов. Равномерный период между прерываниями таймера часов называется тактом системных часов и обычно находится в диапазоне от 500 микросекунд до 15,625 миллисекунд в зависимости от аппаратной платформы. Значение системного времени, полученное KeQuerySystemTime , является точным в тактах системных часов.

Чтобы предоставить более точное значение системного времени, чем у KeQuerySystemTime, KeQuerySystemTimePrecise использует счетчик производительности системы для измерения времени, прошедшего с момента последнего прерывания таймера, и добавляет это время к системным часам, вычисляемого на основе счетчика таймера. Системное время, сообщаемое KeQuerySystemTimePrecise , точно равно микросекундам.

На некоторых аппаратных платформах вызов KeQuerySystemTimePrecise может выполняться медленнее, чем вызов KeQuerySystemTime . Причина заключается в том, что KeQuerySystemTimePrecise считывает счетчик производительности, что может привести к дополнительной задержке. Дополнительные сведения см. в разделе KeQueryPerformanceCounter.

Вызовите подпрограмму KeQueryTimeIncrement , чтобы определить длительность такта системных часов.

Требования

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

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

ExSystemTimeToLocalTime

KeQueryPerformanceCounter

KeQuerySystemTime

KeQueryTickCount

KeQueryTimeIncrement