NdisSetTimerObject-Funktion (ndis.h)

Die NdisSetTimerObject-Funktion legt fest, dass ein Timerobjekt nach einem angegebenen Intervall oder in regelmäßigen Abständen ausgelöst wird.

Syntax

BOOLEAN NdisSetTimerObject(
  [in]           NDIS_HANDLE   TimerObject,
  [in]           LARGE_INTEGER DueTime,
  [in, optional] LONG          MillisecondsPeriod,
  [in, optional] PVOID         FunctionContext
);

Parameter

[in] TimerObject

Ein Handle für ein Timerobjekt, das NDIS bereitstellt, wenn ein Treiber die NdisAllocateTimerObject-Funktion .

[in] DueTime

Die absolute oder relative Zeit, zu der der Timer abläuft. Wenn der Wert des DueTime-Parameters negativ ist, ist die Ablaufzeit relativ zur aktuellen Systemzeit. Andernfalls ist die Ablaufzeit absolut. Die Ablaufzeit wird in Systemzeiteinheiten (Intervalle von 100 Nanosekunden) ausgedrückt. Absolute Ablaufzeiten nachverfolgen alle Änderungen der Systemzeit; relative Ablaufzeiten werden von Systemzeitänderungen nicht beeinflusst.

[in, optional] MillisecondsPeriod

Das periodische Zeitintervall in Millisekunden, das zwischen jedem Auslösen des Timers und dem nächsten Aufruf der NetTimerCallback-Funktion verstreicht, es sei denn, der Timer wird abgebrochen. Der Wert dieses Parameters muss kleiner oder gleich MAXLONG sein.

[in, optional] FunctionContext

Ein Zeiger auf einen vom Aufrufer bereitgestellten Kontextbereich, den NDIS an die zugehörige NetTimerCallback-Funktion übergibt, wenn ein Timer ausgelöst wird. Wenn dieser Parameter NULL ist, verwendet NDIS den Standardwert, der im NDIS_TIMER_CHARACTERISTICS Struktur.

Rückgabewert

NdisSetTimerObject gibt TRUE zurück, wenn sich das Timerobjekt bereits in der Systemtimerwarteschlange befand. Andernfalls wird FALSE zurückgegeben.

Hinweise

Nachdem ein Treiber NdisSetTimerObject aufgerufen hat, wird das Timerobjekt in die Warteschlange gestellt, bis das im DueTime-Parameter angegebene Intervall abläuft. Nach Ablauf des Intervalls wird das Timerobjekt dequeuiert, und die vom Aufrufer bereitgestellte NetTimerCallback-Funktion wird einmal bei IRQL = DISPATCH_LEVEL ausgeführt, sobald ein Prozessor verfügbar ist.

Wenn im MillisecondsPeriod-Parameter ein Wert ohne Zero angegeben wird, wird das Timerobjekt erneut in die Warteschlange gestellt, bis das in MillisecondsPeriod angegebene Intervall abläuft. Nach Ablauf dieses Intervalls wird das Timerobjekt erneut queuiert, und die vom Aufrufer bereitgestellte NetTimerCallback-Funktion wird einmal bei IRQL = DISPATCH_LEVEL ausgeführt, sobald ein Prozessor verfügbar ist.

Hinweis Ab Windows 7 können Sie den Energieverbrauch reduzieren, indem Sie aufrufen NdisSetCoalescableTimerObject anstelle von NdisSetTimerObject , wenn keine genaue Timergenauigkeit erforderlich ist.
 
Weitere Informationen zum Timerverhalten finden Sie unter KeSetTimerEx.

Um einen Timer abzubrechen, rufen Sie die Funktion NdisCancelTimerObject auf.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis.h (einschließlich Ndis.h)
Bibliothek Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln Irql_Timer_Function(ndis), PeriodicTimer(ndis)

Weitere Informationen

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback