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


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

Подпрограмма KeInitializeTimerEx инициализирует расширенный объект таймера ядра.

Синтаксис

void KeInitializeTimerEx(
  [out] PKTIMER    Timer,
  [in]  TIMER_TYPE Type
);

Параметры

[out] Timer

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

[in] Type

Указывает тип объекта таймера( NotificationTimer или SynchronizationTimer).

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

None

Remarks

Объект таймера инициализируется в состоянии без сигнала.

Хранилище для объекта таймера должно быть резидентным: в расширении устройства объекта устройства, созданного драйвером, в расширении контроллера созданного драйвером объекта контроллера или в непакованном пуле, выделенном вызывающим объектом.

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

Вызывающие серверы KeInitializeTimerEx должны выполняться в irQL = DISPATCH_LEVEL или ниже. Лучше всего инициализировать таймеры в IRQL = PASSIVE_LEVEL.

Дополнительные сведения об объектах таймера см. в разделе Объекты таймера и DPC.

Используйте KeSetTimer или KeSetTimerEx , чтобы определить, когда истечет срок действия таймера.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (см. раздел "Примечания")
Правила соответствия DDI HwStorPortProhibitedDIs(storport), IrqlKeDispatchLte(wdm)

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

KeCancelTimer

KeReadStateTimer

KeSetTimer

KeSetTimerEx

KeWaitForMultipleObjects

KeWaitForSingleObject