EVT_WDF_TIMER回呼函式 (wdftimer.h)
[適用於 KMDF 和 UMDF]
在經過指定的時間週期時,會呼叫 EvtTimerFunc 事件回呼函式。
語法
EVT_WDF_TIMER EvtWdfTimer;
void EvtWdfTimer(
[in] WDFTIMER Timer
)
{...}
參數
[in] Timer
從先前呼叫 WdfTimerCreate 取得的架構定時器物件的句柄。
傳回值
無
備註
若要註冊 EvtTimerFunc 回呼函式,並指定應該在架構呼叫此函式之前經過的時間週期,您的驅動程式必須呼叫 WdfTimerCreate。
在 1.9 版之前的 KMDF 版本中,架構會將 EvtTimerFunc 回呼函式實作為延後過程調用, (DPC) 。 因此,當時間周期經過時,系統會將呼叫新增至 EvtTimerFunc 回呼函式至 DPC 佇列。 系統會在 IRQL = DISPATCH_LEVEL 呼叫 EvtTimerFunc 回呼函式,當它到達佇列的前端,且可在 IRQL < DISPATCH_LEVEL執行 CPU。
在 KMDF 1.9 版和更新版本中,架構預設會將 EvtTimerFunc 回呼函式實作為 DPC。 或者,如果驅動程式將定時器對象的執行層級設定為 WdfExecutionLevelPassive,架構就會從 IRQL = PASSIVE_LEVEL的工作專案呼叫 EvtTimerFunc 回呼函式。
注意
如果在PASSIVE_LEVEL呼叫 WdfObjectDelete 執行的 EvtTimerFunc 回呼函式,這會導致死結。 相反地,請等候父系在移除裝置時自動刪除定時器-或者,如果您需要提早刪除,請從定時器回呼排程工作專案以刪除定時器。
從UMDF 2.0版開始,UMDF驅動程式的 EvtTimerFunc 回呼函式一律會在PASSIVE_LEVEL執行。
如需架構定時器對象的詳細資訊,請參閱 使用定時器。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.0 |
最低UMDF版本 | 2.0 |
標頭 | wdftimer.h (包含 Wdf.h) |
IRQL | 請參閱一節。 |