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)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIS(storport)IrqlIoPassive5(wdm)PowerIrpDDis(wdm)

另请参阅

IoStartTimer

IoStopTimer

IoTimer

KeInitializeTimer

KeSetTimer