Freigeben über


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 Zeitgeberobjekt, das NDIS bereitstellt, wenn ein Treiber die NdisAllocateTimerObject-Funktion .

Rückgabewert

NdisCancelTimerObject gibt TRUE zurück, wenn sich das angegebene Timerobjekt in der Systemtimerwarteschlange befindet. Andernfalls wird FALSE zurückgegeben.

Hinweise

Ein Aufruf von NdisCancelTimerObject bricht die Ausführung einer NetTimerCallback-Funktion ab, sofern das letzte angegebene Timeoutintervall noch nicht abgelaufen ist.

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 der NdisSetTimerObject-Funktion ein Wert ungleich null angegeben wurde, wird der Timer als periodischer Timer bezeichnet. Wenn im MillisecondsPeriod-Parameter ein Nullwert angegeben wurde, wird der Timer als Einmaliger Timer bezeichnet. Die folgenden Punkte gelten für das Abbrechen beider Arten von Timern:

  • Wenn der Aufrufer von NdisCancelTimerObject einen regelmäßigen 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 regelmäßigen 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. Der Aufrufer könnte beispielsweise 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
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis.h (include Ndis.h)
Bibliothek Ndis.lib
IRQL Siehe Abschnitt "Hinweise"
DDI-Complianceregeln Irql_Timer_Function(ndis), PeriodicTimer(ndis)

Weitere Informationen

NdisAllocateTimerObject

NdisSetTimerObject

NetTimerCallback