2 ms delay

From
Gennady Mayko ()
To
Genadi Zawidowski
Date
2002-10-24T14:17:21Z
Area
SU.WINDOWS.NT.PROG
From: "Gennady Mayko" <gennady.mayko@broadcom.com>

Добрый день!

 GZ> From: "Genadi Zawidowski" <dolphin@infopro.spb.su>

 GM>> From: "Gennady Mayko" <gennady.mayko@broadcom.com>
 GM>> Добрый день!
 GZ>>> Кто знает, как сделать (в драйвере, естественно, w2k/xp)
 GZ>>> выдержку двухмилисекундных интервалов так, чтобы
 GZ>>> загрузка процессора не была на все сто процентов?
 GM>> Посмотри функцию KeDelayExecutionThread, может она поможет. Если нет,
 GM>> поищи в google groups фразу "better timer performance than
 GM>> KeSetTimerEx".

 GZ> Так пока он крутит калиброваную задержку, сто процентов загрузки проца и
 GZ> имеем.
 GZ> Если бы однократно задержаться - то ничего. А надо часто. И много.
--
Судя по документации, KeDelayExecutionThread приостанавливает выполнение
thread'a, так что он уже не занимает процессоры.

А предлагаемый в треде метод, насколько я понимаю, использует другой подход -
там запускается "профилирование" (profiling) участка кода с частотой 1000 *
100e-9 и перехватывается процедура обработки самого profiler'a. Результаты
профилирования его не интересуют; зато, получив управление каждый "тик"
profilier'a, можно делать "побочные" полезные вещи. Поэтому и в этом методе
процессор не занимается на время ожидания.


 GZ> Генка - mgs2001 at pochtamt dot ru

С уважением,
Геннадий Майко.

--- ifmail v.2.15dev5
 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)