Функция 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 | Любой уровень |