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


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

Подпрограмма IoInitializeTimer настраивает предоставленную драйвером подпрограмму IoTimer , связанную с заданным объектом устройства.

Синтаксис

NTSTATUS IoInitializeTimer(
  [in]           PDEVICE_OBJECT         DeviceObject,
  [in]           PIO_TIMER_ROUTINE      TimerRoutine,
  [in, optional] __drv_aliasesMem PVOID Context
);

Параметры

[in] DeviceObject

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

[in] TimerRoutine

Указатель на подпрограмму IoTimer , предоставляемую драйвером.

[in, optional] Context

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

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

IoInitializeTimer возвращает STATUS_SUCCESS, если подпрограмма IoTimer настроена .

Комментарии

IoInitializeTimer следует вызывать только один раз для каждого объекта устройства.

Подпрограмма IoTimer драйвера вызывается один раз в секунду после того, как драйвер включает таймер путем вызова IoStartTimer. Драйвер может отключить таймер, вызвав IoStopTimer и повторно включив его с помощью IoStartTimer.

Подпрограмма Драйвера IoTimer вызывается по адресу IRQL = DISPATCH_LEVEL и поэтому не должна содержать страничный код.

Когда таймер работает, диспетчер операций ввода-вывода вызывает подпрограмму IoTimer , предоставляемую драйвером, один раз в секунду. Драйверы, чьи подпрограммы времени ожидания должны вызываться с переменными интервалами или с интервалами с более детальной детализацией, могут настроить подпрограмму CustomTimerDpc и использовать подпрограммы Таймера KeXxx.

Требования

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

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

IoStartTimer

IoStopTimer

IoTimer

KeInitializeTimer

KeSetTimer