IoInitializeTimer 函数 (wdm.h)

IoInitializeTimer 例程设置与给定设备对象关联的驱动程序提供的 IoTimer 例程。

语法

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

参数

[in] DeviceObject

指向表示 I/O 操作可能超时的设备的设备对象的指针。

[in] TimerRoutine

指向驱动程序提供的 IoTimer 例程的指针。

[in, optional] Context

指向驱动程序确定的上下文的指针,将使用该上下文调用其 IoTimer 例程。

返回值

如果设置了 IoTimer 例程,IoInitializeTimer 将返回STATUS_SUCCESS。

注解

每个设备对象只能调用 IoInitializeTimer 一次。

驱动程序的 IoTimer 例程在驱动程序通过调用 IoStartTimer 启用计时器后,每秒调用一次。 驱动程序可以通过调用 IoStopTimer 来禁用计时器,并可以使用 IoStartTimer 再次启用计时器。

驱动程序的 IoTimer 例程在 IRQL = DISPATCH_LEVEL调用,因此不得包含可分页代码。

计时器运行时,I/O 管理器每秒调用驱动程序提供的 IoTimer 例程一次。 应以可变间隔或更精细的时间间隔调用超时例程的驱动程序可以设置 CustomTimerDpc 例程并使用 KeXxx计时器 例程。

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) IrqlIoPassive5 (wdm) PowerIrpDDis (wdm)

另请参阅

IoStartTimer

IoStopTimer

IoTimer

KeInitializeTimer

KeSetTimer