NdisCancelTimerObject-Funktion (ndis.h)
Die NdisCancelTimerObject--Funktion bricht ein Timerobjekt ab, das einem vorherigen Aufruf der NdisSetTimerObject--Funktion zugeordnet ist.
Syntax
BOOLEAN NdisCancelTimerObject(
[in] NDIS_HANDLE TimerObject
);
Parameter
[in] TimerObject
Ein Handle für ein Timerobjekt, das von NDIS bereitgestellt wird, wenn ein Treiber die NdisAllocateTimerObject Funktion.
Rückgabewert
NdisCancelTimerObject gibt TRUE zurück, wenn sich das angegebene Timerobjekt in der Systemzeitgeberwarteschlange befindet; andernfalls wird FALSE-zurückgegeben.
Bemerkungen
Ein Aufruf von NdisCancelTimerObject bricht die Ausführung einer NetTimerCallback--Funktion ab, vorausgesetzt, das letzte angegebene Timeoutintervall ist noch nicht abgelaufen.
NDIS-Treiber sollten zuerst NdisCancelTimerObject aufrufen, wenn sie angehalten oder entladen werden, um sicherzustellen, dass eine NetTimerCallback--Funktion nicht versucht, auf Ressourcen zuzugreifen, die der Treiber bereits freigegeben hat.
Wenn im MillisecondsPeriod Parameter des NdisSetTimerObject Funktion ein Wert ungleich Null angegeben wurde, wird der Timer als periodische Timer-bezeichnet. Wenn im MillisecondsPeriod Parameter ein Nullwert angegeben wurde, wird der Timer als einmaliger Timerbezeichnet. Die folgenden Punkte gelten für das Abbrechen beider Zeitgebertypen:
- Wenn der Aufrufer von NdisCancelTimerObject einen periodischen Timer abbricht, muss er unter IRQL = PASSIVE_LEVEL ausgeführt werden. Andernfalls sollte der Aufrufer von NdisCancelTimerObject- unter IRQL <= DISPATCH_LEVEL ausgeführt werden.
-
Wenn der Aufrufer von NdisCancelTimerObject einen periodischen Timer abbricht, ruft NdisCancelTimerObjectKeFlushQueuedDpcs auf, um sicherzustellen, dass der Timer derzeit nicht ausgeführt wird. Daher muss der Aufrufer nicht über einen separaten Synchronisierungsmechanismus verfügen, um sicherzustellen, dass der Timer derzeit nicht auf einem anderen Prozessor ausgeführt wird.
Wenn der Aufrufer von NdisCancelTimerObject einen einmaligen Timer abbricht, muss der Aufrufer über einen separaten Synchronisierungsmechanismus verfügen, um sicherzustellen, dass der Timer derzeit nicht auf einem anderen Prozessor ausgeführt wird. Beispielsweise könnte der Aufrufer NDIS_WAIT_FOR_MUTEX aufrufen, um zu warten, bis der Timerthread ein Mutex-Objekt signalisiert, wenn der Thread abgeschlossen ist.
Weitere Informationen finden Sie unter Synchronisierung und Benachrichtigung in Netzwerktreibern.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt in NDIS 6.0 und höher. |
Zielplattform- | Universal |
Header- | ndis.h (include Ndis.h) |
Library | Ndis.lib |
IRQL- | Siehe Abschnitt "Hinweise" |
DDI-Complianceregeln | Irql_Timer_Function(ndis), PeriodicTimer(ndis) |