EVT_WDF_TIMER Rückruffunktion (wdftimer.h)
[Gilt für KMDF und UMDF]
Die EvtTimerFunc-Ereignisrückruffunktion wird aufgerufen, wenn ein angegebener Zeitraum abgelaufen ist.
EVT_WDF_TIMER EvtWdfTimer;
void EvtWdfTimer(
[in] WDFTIMER Timer
)
{...}
[in] Timer
Ein Handle für ein Framework-Timerobjekt, das aus einem vorherigen Aufruf von WdfTimerCreate abgerufen wurde.
Keine
Um eine EvtTimerFunc-Rückruffunktion zu registrieren und den Zeitraum anzugeben, der verstrichen sein soll, bevor das Framework diese Funktion aufruft, muss Ihr Treiber WdfTimerCreate aufrufen.
In KMDF-Versionen vor Version 1.9 implementiert das Framework EvtTimerFunc-Rückruffunktionen als verzögerte Prozeduraufrufe (DPCs). Wenn ein Zeitraum verstrichen ist, fügt das System daher einer DPC-Warteschlange einen Aufruf einer EvtTimerFunc-Rückruffunktion hinzu. Das System ruft die EvtTimerFunc-Rückruffunktion unter IRQL = DISPATCH_LEVEL auf, wenn sie die Front der Warteschlange erreicht und eine CPU verfügbar ist, die bei IRQL < DISPATCH_LEVEL ausgeführt wird.
In KMDF-Versionen 1.9 und höher implementiert das Framework standardmäßig EvtTimerFunc-Rückruffunktionen als DPCs. Wenn der Treiber die Ausführungsebene des Timerobjekts auf WdfExecutionLevelPassive festlegt, ruft das Framework die EvtTimerFunc-Rückruffunktion aus einem Arbeitselement unter IRQL = PASSIVE_LEVEL auf.
Hinweis
Wenn eine EvtTimerFunc-Rückruffunktion , die unter PASSIVE_LEVEL ausgeführt wird , WdfObjectDelete aufruft, führt dies zu einem Deadlock. Warten Sie stattdessen, bis das übergeordnete Element den Timer automatisch löscht, wenn das Gerät entfernt wird. Wenn Sie frühzeitig löschen müssen, planen Sie ein Arbeitselement aus dem Timerrückruf, um den Timer zu löschen.
Ab UMDF-Version 2.0 werden die EvtTimerFunc-Rückruffunktionen eines UMDF-Treibers immer auf PASSIVE_LEVEL ausgeführt.
Weitere Informationen zu Framework-Timerobjekten finden Sie unter Verwenden von Timern.
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdftimer.h (include Wdf.h) |
IRQL | Weitere Informationen finden Sie im Abschnitt mit den Hinweisen. |