Condividi tramite


EVT_WDF_TIMER funzione di callback (wdftimer.h)

[Si applica a KMDF e UMDF]

La funzione di callback dell'evento EvtTimerFunc viene chiamata quando è trascorso un periodo di tempo specificato.

Sintassi

EVT_WDF_TIMER EvtWdfTimer;

void EvtWdfTimer(
  [in] WDFTIMER Timer
)
{...}

Parametri

[in] Timer

Handle a un oggetto timer del framework ottenuto da una chiamata precedente a WdfTimerCreate.

Valore restituito

nessuno

Osservazioni

Per registrare una funzione callback EvtTimerFunc e specificare il periodo di tempo che deve essere trascorso prima che il framework chiami questa funzione, il driver deve chiamare WdfTimerCreate.

Nelle versioni kmDF precedenti alla versione 1.9, il framework implementa le funzioni di callback EvtTimerFunc come chiamate di routine posticipate (DPCS). Pertanto, quando trascorso un periodo di tempo, il sistema aggiunge una chiamata a una funzione di callback EvtTimerFunc a una coda DPC. Il sistema chiama la funzione di callback EvtTimerFunc in IRQL = DISPATCH_LEVEL quando raggiunge la parte anteriore della coda e una CPU in esecuzione in IRQL < DISPATCH_LEVEL è disponibile.

Nelle versioni di KMDF 1.9 e versioni successive, il framework implementa per impostazione predefinita le funzioni di callback EvtTimerFunc come CONTROLLER di dominio. In alternativa, se il driver imposta il livello di esecuzione dell'oggetto timer su WdfExecutionLevelPassive, il framework chiama la funzione di callback EvtTimerFunc da un elemento di lavoro in IRQL = PASSIVE_LEVEL.

Nota

Se una funzione di callback EvtTimerFunc in esecuzione in PASSIVE_LEVEL chiama WdfObjectDelete, ciò comporta il deadlock. Attendere invece che l'elemento padre elimini automaticamente il timer quando il dispositivo viene rimosso oppure, se è necessario eliminare in anticipo, pianificare un elemento di lavoro dal callback timer per eliminare il timer.

A partire dalla versione 2.0 di UMDF, le funzioni di callback evtTimerFunc di un driver UMDF vengono sempre eseguite in PASSIVE_LEVEL.

Per altre informazioni sugli oggetti timer del framework, vedere Uso di Timer.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Versione UMDF minima 2,0
Intestazione wdftimer.h (include Wdf.h)
IRQL Vedere La sezione Osservazioni.

Vedi anche

WdfTimerCreate