Функция 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) |