Share via


Funzione KeCancelTimer (wdm.h)

La routine KeCancelTimer dequeue un oggetto timer prima dell'intervallo timer, se è stato impostato, scade.

Sintassi

BOOLEAN KeCancelTimer(
  [in, out] PKTIMER unnamedParam1
);

Parametri

[in, out] unnamedParam1

Puntatore a un oggetto timer inizializzato, per il quale il chiamante fornisce l'archiviazione.

Valore restituito

Se l'oggetto timer specificato si trova nella coda timer di sistema, KeCancelTimer restituisce TRUE.

Commenti

Se l'oggetto timer è attualmente presente nella coda timer di sistema, viene rimosso dalla coda. Se un oggetto DPC è associato al timer, viene annullato. In caso contrario, non viene eseguita alcuna operazione.

La routine restituisce TRUE se il timer è ancora nella coda timer. Un timer nonperiodic viene rimosso dalla coda di sistema non appena scade. Pertanto, per i timer nonperiodici, KeCancelTimer restituisce FALSE se il timer DPC è stato accodato. I timer periodici si trovano sempre nella coda timer, quindi KeCancelTimer restituisce sempre TRUE per i timer periodici.

Si noti che un DPC già in esecuzione viene eseguito al completamento. Il driver deve assicurarsi che il DPC sia stato completato prima di liberare tutte le risorse usate dal DPC. Per un timer nonperiodic, è possibile usare le primitive di sincronizzazione, ad esempio oggetti evento, per sincronizzare tra il driver e il DPC. Il driver può controllare il codice restituito di KeCancelTimer per determinare se il DPC è in esecuzione. In tal caso, il DPC può segnalare l'evento prima di uscire e il driver può attendere che tale evento venga reimpostato allo stato non segnalato.

Poiché per i timer periodici KeCancelTimer restituisce sempre TRUE, i driver devono usare una tecnica diversa per attendere il completamento del DPC. Usare la routine KeFlushQueuedDpcs per bloccare fino all'esecuzione del DPC.

I driver non devono essere sincronizzati per i dati archiviati in variabili globali o estensioni dell'oggetto driver. Il sistema chiama automaticamente KeFlushQueuedDpcs prima di deallocare una di queste aree.

Per altre informazioni sugli oggetti timer, vedere Oggetti timer e schede di rete.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDDIs(storport), IrqlKeDispatchLte(wdm)

Vedi anche

KeInitializeTimer

KeReadStateTimer

KeSetTimer