Funzione NdisCancelTimerObject (ndis.h)

La funzione NdisCancelTimerObject annulla un oggetto timer associato a una chiamata precedente alla funzione NdisSetTimerObject .

Sintassi

BOOLEAN NdisCancelTimerObject(
  [in] NDIS_HANDLE TimerObject
);

Parametri

[in] TimerObject

Handle per un oggetto timer fornito da NDIS quando un driver chiama Funzione NdisAllocateTimerObject .

Valore restituito

NdisCancelTimerObject restituisce TRUE se l'oggetto timer specificato si trova nella coda timer di sistema; in caso contrario, restituisce FALSE.

Commenti

Una chiamata a NdisCancelTimerObject annulla l'esecuzione di una funzione NetTimerCallback , purché l'ultimo intervallo di timeout specificato non sia ancora scaduto.

I driver NDIS devono chiamare NdisCancelTimerObject prima quando si arrestano o scaricano per assicurarsi che una funzione NetTimerCallback non tenti di accedere alle risorse già rilasciate dal driver.

Se nel parametro MillisecondsPeriod della funzione NdisSetTimerObject è stato specificato un valore diverso da zero, il timer è noto come timer periodico. Se nel parametro MillisecondsPeriod è stato specificato un valore zero, il timer è noto come timer one-shot. I punti seguenti si applicano all'annullamento di entrambi i tipi di timer:

  • Se il chiamante di NdisCancelTimerObject annulla un timer periodico, deve essere in esecuzione in IRQL = PASSIVE_LEVEL. In caso contrario, il chiamante di NdisCancelTimerObject deve essere in esecuzione in IRQL <= DISPATCH_LEVEL.
  • Se il chiamante di NdisCancelTimerObject annulla un timer periodico, NdisCancelTimerObject chiama KeFlushQueuedDpcs per assicurarsi che il timer non sia attualmente in esecuzione. Pertanto, il chiamante non è necessario disporre di un meccanismo di sincronizzazione separato per garantire che il timer non sia attualmente in esecuzione in un altro processore.

    Se il chiamante di NdisCancelTimerObject annulla un timer one-shot, è necessario che il chiamante disponga di un meccanismo di sincronizzazione separato per assicurarsi che il timer non sia attualmente in esecuzione su un altro processore. Ad esempio, il chiamante potrebbe chiamare NDIS_WAIT_FOR_MUTEX per attendere che il thread timer segnali un oggetto mutex quando il thread sta per completare il thread.

    Per altre informazioni, vedere Sincronizzazione e notifica nei driver di rete.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Piattaforma di destinazione Universale
Intestazione ndis.h (includere Ndis.h)
Libreria Ndis.lib
IRQL Vedere La sezione Osservazioni
Regole di conformità DDI Irql_Timer_Function(ndis), PeriodicTimer(ndis)

Vedi anche

NdisAllocateTimerObject

NdisSetTimerObject

NetTimerCallback