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)