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處理器可用時立即執行一次。

注意 從 Windows 7 開始,您可以藉由呼叫 來減少耗電量如果不需要確切定時器精確度,NdisSetCoalescableTimerObject 而不是 NdisSetTimerObject
 
如需定時器行為的詳細資訊,請參閱 KeSetTimerEx

若要取消定時器,請呼叫 NdisCancelTimerObject 函式。

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平台 Universal
標頭 ndis.h (包含 Ndis.h)
程式庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_Timer_Function (ndis) PeriodicTimer (ndis)

另請參閱

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback