NdisSetTimerObject 函式 (ndis.h)
NdisSetTimerObject 函式會設定定時器物件,以在指定的間隔或定期引發。
語法
BOOLEAN NdisSetTimerObject(
[in] NDIS_HANDLE TimerObject,
[in] LARGE_INTEGER DueTime,
[in, optional] LONG MillisecondsPeriod,
[in, optional] PVOID FunctionContext
);
參數
[in] TimerObject
當驅動程式呼叫 時,NDIS 提供的定時器物件的句柄 NdisAllocateTimerObject 函式。
[in] DueTime
定時器到期的絕對或相對時間。 如果 DueTime 參數的值是負數,則到期時間會相對於目前的系統時間。 否則,到期時間是絕對的。 到期時間是以系統時間單位表示, (100 奈秒間隔) 。 絕對到期時間會追蹤系統時間中的任何變更;相對到期時間不會受到系統時間變更的影響。
[in, optional] MillisecondsPeriod
定期時間間隔,以毫秒為單位,在每次定時器引發時與下一次呼叫 NetTimerCallback 函式之間經過,除非取消定時器。 此參數的值必須小於或等於 MAXLONG。
[in, optional] FunctionContext
當定時器引發時,NDIS 傳遞給相關聯 NetTimerCallback 函式的呼叫端提供內容區域的指標。 如果此參數為 NULL,NDIS 會使用 中指定的預設值 NDIS_TIMER_CHARACTERISTICS 結構。
傳回值
如果定時器對象已經在系統定時器佇列中,NdisSetTimerObject 會傳回 TRUE;否則會傳回 FALSE。
備註
驅動程式呼叫 NdisSetTimerObject 之後,定時器物件會排入佇列,直到 DueTime 參數中指定的間隔到期為止。 間隔到期之後,定時器物件會清除佇列,並在處理器可用時立即在 IRQL = DISPATCH_LEVEL執行呼叫端提供的 NetTimerCallback 函式一次。
如果在 MillisecondsPeriod 參數中指定非零值,定時器物件會再次排入佇列,直到 在MillisecondsPeriod 中指定的間隔到期為止。 此間隔到期之後,定時器物件會重新排入佇列,且呼叫端提供的 NetTimerCallback 函式會在 IRQL = DISPATCH_LEVEL處理器可用時立即執行一次。
若要取消定時器,請呼叫 NdisCancelTimerObject 函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
目標平台 | Universal |
標頭 | ndis.h (包含 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_Timer_Function (ndis) 、 PeriodicTimer (ndis) |