EVT_WDF_TIMER función de devolución de llamada (wdftimer.h)
[Se aplica a KMDF y UMDF]
Se llama a la función de devolución de llamada de evento EvtTimerFunc cuando ha transcurrido un período de tiempo especificado.
Sintaxis
EVT_WDF_TIMER EvtWdfTimer;
void EvtWdfTimer(
[in] WDFTIMER Timer
)
{...}
Parámetros
[in] Timer
Identificador de un objeto de temporizador de marco que se obtuvo de una llamada anterior a WdfTimerCreate.
Valor devuelto
Ninguno
Observaciones
Para registrar un EvtTimerFunc función de devolución de llamada y especificar el período de tiempo que debe transcurrir antes de que el marco llame a esta función, el controlador debe llamar a WdfTimerCreate.
En versiones de KMDF anteriores a la versión 1.9, el marco implementa EvtTimerFunc funciones de devolución de llamada como llamadas a procedimiento diferido (DPC). Por lo tanto, cuando transcurre un período de tiempo, el sistema agrega una llamada a un EvtTimerFunc función de devolución de llamada a una cola DPC. El sistema llama al EvtTimerFunc función de devolución de llamada en IRQL = DISPATCH_LEVEL cuando llega al frente de la cola y hay disponible una CPU que se ejecuta en irQL < DISPATCH_LEVEL.
En las versiones 1.9 y posteriores de KMDF, el marco implementa EvtTimerFunc funciones de devolución de llamada como DPC. Como alternativa, si el controlador establece el nivel de ejecución del objeto de temporizador en WdfExecutionLevelPassive, el marco llama a la función de devolución de llamada EvtTimerFunc desde un elemento de trabajo de en IRQL = PASSIVE_LEVEL.
Nota
Si un EvtTimerFunc función de devolución de llamada que se ejecuta en PASSIVE_LEVEL llama a WdfObjectDelete, se produce un interbloqueo. En su lugar, espere a que el elemento primario elimine automáticamente el temporizador cuando se quite el dispositivo o, si necesita eliminarlo, programe un elemento de trabajo desde la devolución de llamada del temporizador para eliminar el temporizador.
A partir de la versión 2.0 de UMDF, las funciones de devolución de llamada EvtTimerFun c de un controlador UMDF siempre se ejecutan en PASSIVE_LEVEL.
Para obtener más información sobre los objetos del temporizador del marco, vea Using Timers.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Universal |
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado de | wdftimer.h (incluya Wdf.h) |
irQL | Consulte la sección Comentarios. |