共用方式為


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 參數中指定的間隔到期為止。 間隔到期之後,定時器物件就會被清除佇列,且呼叫端提供的 NetTimerCallback 函式會在 IRQL = DISPATCH_LEVEL處理器可用時立即執行一次。

如果在 MillisecondsPeriod 參數中指定非零值,則定時器物件會再次排入佇列,直到 MillisecondsPeriod 中指定的間隔到期為止。 在此間隔到期之後,定時器物件會重新排入佇列,並在處理器可用后立即在 IRQL = DISPATCH_LEVEL執行呼叫端提供的 NetTimerCallback 函式。

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

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

要求

要求 價值
最低支援的用戶端 NDIS 6.0 和更新版本支援。
目標平臺 普遍
標頭 ndis.h (包括 Ndis.h)
連結庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_Timer_Function(ndis)PeriodicTimer(ndis)

另請參閱

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback