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


Подпрограммы KeXxxTimer, объекты KTIMER и DPC

Начиная с Windows 2000 для управления таймерами доступен набор подпрограмм таймера KeXxx. В этих подпрограммах используются объекты таймера, основанные на структуре KTIMER . Чтобы создать объект таймера, драйвер сначала выделяет хранилище для структуры KTIMER . Затем драйвер вызывает подпрограмму, например KeInitializeTimer или KeInitializeTimerEx , для инициализации этой структуры.

Для таймера можно задать срок действия только один раз или несколько раз через заданный интервал. KeSetTimer всегда задает таймер, срок действия которого истекает только один раз. KeSetTimerEx принимает необязательный параметр Period , который задает повторяющийся интервал таймера.

Необязательная подпрограмма CustomTimerDpc (тип отложенного вызова процедуры) может быть связана либо с таймером уведомлений, либо с таймером синхронизации. Эта подпрограмма выполняется по истечении указанного интервала времени. Дополнительные сведения см. в разделе Использование объектов таймера.

Таймер может быть таймером уведомлений или таймером синхронизации.

  • При сигнале таймера уведомления все потоки ожидания выполняют ожидание. Состояние таймера остается сигнальным до явного сброса.

  • По истечении срока действия таймера синхронизации его состояние устанавливается в Signaled до тех пор, пока не будет освобожден один ожидающий поток. Затем таймер сбрасывается в состояние Not-Signaled.

KeInitializeTimer всегда создает таймеры уведомлений. KeInitializeTimerEx принимает параметр Type , который может быть NotificationTimer или SynchronizationTimer.

В следующих разделах содержатся дополнительные сведения об объектах таймера и DPC.

Использование объектов таймера

Точность таймера

Регистрация и постановка в очередь подпрограммы CustomTimerDpc

Предоставление сведений о контексте CustomTimerDpc

Использование подпрограммы CustomTimerDpc