Compartir a través de


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.

Consulte también

WdfTimerCreate