[适用于 KMDF 和 UMDF]
WDF_TIMER_CONFIG结构包含框架计时器对象的配置信息。
Syntax
typedef struct _WDF_TIMER_CONFIG {
ULONG Size;
PFN_WDF_TIMER EvtTimerFunc;
ULONG Period;
BOOLEAN AutomaticSerialization;
ULONG TolerableDelay;
BOOLEAN UseHighResolutionTimer;
} WDF_TIMER_CONFIG, *PWDF_TIMER_CONFIG;
Members
Size
此结构的大小(以字节为单位)。
EvtTimerFunc
指向驱动程序提供的 EvtTimerFunc 回调函数或 NULL 的指针。
Period
一个时间段,以毫秒为单位。 只要指定的毫秒数过,框架就重复调用驱动程序的 EvtTimerFunc 回调函数。 如果此值为零,则框架不会重复调用驱动程序的 EvtTimerFunc 回调函数。 而是在 WdfTimerStart 方法的 DueTime 已用完之后调用回调函数一次。 (如果 WdfTimerCreate 将执行级别设置为 WdfExecutionLevelPassive,则时间段必须为零。时间段不能为负值。
AutomaticSerialization
一个布尔值,如果 为 TRUE,则指示框架会将计时器对象的 EvtTimerFunc 回调函数的执行与计时器父设备对象下其他对象的回调函数同步执行。 有关详细信息,请参阅以下“备注”部分。 如果 为 FALSE,则框架不会同步 EvtTimerFunc 回调函数的执行。
TolerableDelay
指定 时间段 指定的计时器周期的容差(以毫秒为单位),以及 WdfTimerStart 方法的 DueTime 指定的初始时间间隔。 对于定期计时器,两个连续计时器过期之间的时间间隔将介于 (PeriodTolerableDelay) 到 (Period + - TolerableDelay) 之间。 初始过期时间将介于 DueTime 到 (DueTime + TolerableDelay)的范围内。 TolerableDelay 值不能为负值。
TolerableDelay 成员在 1.9 及更高版本的 KMDF 中可用。
在使用 KMDF 1.13 或 UMDF 2.0 的驱动程序中,可以将此成员设置为 TolerableDelayUnlimited ,以指定由于此计时器过期而不应唤醒系统。
如果 UseHighResolutionTimer 为 WdfTrue,则必须将 TolerableDelay 设置为零。 否则, WdfTimerCreate 返回失败代码。
有关此成员的详细信息,请参阅以下“备注”部分。
UseHighResolutionTimer
仅 KMDF
此成员从 KMDF 版本 1.13 开始可用。
WDF_TRI_STATE类型的值。 如果此值为 WdfTrue,则框架使用精度为 1 毫秒的高分辨率计时器。 如果值为 WdfFalse 或 WdfDefault,则框架使用与系统时钟时钟计时间隔匹配(默认为 15.6 毫秒)的标准计时器。
警告
如果将 UseHighResolutionTimer 设置为 WdfTrue,则必须调用 WdfTimerStart ,并将 DueTime 参数设置为负值。 否则,调用会导致系统崩溃。
如果 UseHighResolutionTimer 为 WdfTrue,则必须将 TolerableDelay 设置为零。 否则, WdfTimerCreate 返回失败代码。
注解
WDF_TIMER_CONFIG结构用作 WdfTimerCreate 方法的输入。 若要初始化 WDF_TIMER_CONFIG 结构,驱动程序必须调用 WDF_TIMER_CONFIG_INIT 或 WDF_TIMER_CONFIG_INIT_PERIODIC。
如果将父对象的同步范围设置为 WdfSynchronizationScopeNone,则WDF_TIMER_CONFIG的 AutomaticSerialization 成员无效。
如果父设备对象的执行级别为 WdfExecutionLevelPassive,则仅当计时器对象表示被动级计时器时,才能将 AutomaticSerialization 成员设置为 TRUE。
如果驱动程序使用 TolerableDelay 成员,作系统可以组合在一起的过期时间,并同时处理所有这些时间。 如果作系统可以同时处理多个计时器的过期时间,它可能会使计算机处于低功率状态更长的时间,以增加电池使用时间。
如果 TolerableDelay 成员为 TolerableDelayUnlimited,则当计时器过期时,如果计时器处于低功率(Sx)状态,则系统将不会返回完全处于“S0”状态来为计时器提供服务。 驱动程序可以指定 TolerableDelayUnlimited ,以增加计时器与非关键周期作相关的电池使用时间。
将 UseHighResolutionTimer 设置为 WdfTrue 将启用高分辨率计时器对象而不是常规计时器,并可能导致电池使用时间下降。 仅当实际需要更高的分辨率时,才使用此解决方案。 有关详细信息和替代方法,请参阅 有关高分辨率计时器的专用文章。
有关 自动序列化 和同步驱动程序回调函数的详细信息,请参阅 适用于 Framework-Based 驱动程序的同步技术。
有关框架计时器对象的详细信息,请参阅 “使用计时器”。
要求
| Requirement | 价值 |
|---|---|
| 最低 KMDF 版本 | 1.0 |
| 最低 UMDF 版本 | 2.0 |
| Header | wdftimer.h (包括 Wdf.h) |