estructura WDF_TIMER_CONFIG (wdftimer.h)
[Se aplica a KMDF y UMDF]
La estructura WDF_TIMER_CONFIG contiene información de configuración para un objeto de temporizador de marco.
Sintaxis
typedef struct _WDF_TIMER_CONFIG {
ULONG Size;
PFN_WDF_TIMER EvtTimerFunc;
ULONG Period;
BOOLEAN AutomaticSerialization;
ULONG TolerableDelay;
BOOLEAN UseHighResolutionTimer;
} WDF_TIMER_CONFIG, *PWDF_TIMER_CONFIG;
Miembros
Size
Tamaño, en bytes, de esta estructura.
EvtTimerFunc
Puntero a una función de devolución de llamada EvtTimerFun c proporcionada por el controlador o null.
Period
Período de tiempo, en milisegundos. El marco llama repetidamente a la EvtTimerFunc del controlador función de devolución de llamada, siempre que transcurra el número especificado de milisegundos. Si este valor es cero, el marco no llama a la EvtTimerFunc del controlador función de devolución de llamada repetidamente. En su lugar, llama a la función de devolución de llamada una vez, después de que WdfTimerStart del método DueTime haya transcurrido. (El período de tiempo debe ser cero si WdfTimerCreate establece el nivel de ejecución en WdfExecutionLevelPassive). El período de tiempo no puede ser un valor negativo.
AutomaticSerialization
Valor booleano que, si TRUE, indica que el marco sincronizará la ejecución del objeto de temporizador EvtTimerFunc función de devolución de llamada con funciones de devolución de llamada de otros objetos que están debajo del objeto de dispositivo primario del temporizador. Para obtener más información, vea la siguiente sección Comentarios. Si FALSE, el marco no sincroniza la ejecución del EvtTimerFunc función de devolución de llamada.
TolerableDelay
Especifica una tolerancia, en milisegundos, para el período del temporizador que Period especifica y para el intervalo de tiempo inicial que especifica el WdfTimerStart método DueTime especifica. Para un temporizador periódico, el intervalo de tiempo entre dos expiraciones sucesivas del temporizador estará en el intervalo de (Período - TolerableDelay) a (Período + TolerableDelay). La hora de expiración inicial estará en el intervalo comprendido entre DueTime (DueTime + TolerableDelay). El valor de TolerableDelay no puede ser negativo.
El miembro TolerableDelay está disponible en la versión 1.9 y versiones posteriores de KMDF.
A partir de Windows 8.1, en un controlador que usa como mínimo KMDF 1.13 o UMDF 2.0, puedes establecer este miembro en TolerableDelayUnlimited para especificar que el sistema no se debe reactivar como resultado de la expiración de este temporizador.
Si UseHighResolutionTimer es WdfTrue, debe establecer tolerableDelay en cero. De lo contrario, WdfTimerCreate devuelve un código de error.
Para obtener más información sobre este miembro, vea la siguiente sección Comentarios.
UseHighResolutionTimer
KMDF solo
Este miembro está disponible a partir de Windows 8.1 y KMDF versión 1.13.
Valor con tipo WDF_TRI_STATE. Si este valor es WdfTrue, el marco usa un temporizador de alta resolución que tiene una precisión de un milisegundo. Si el valor es WdfFalse o WdfDefault, el marco usa un temporizador estándar que tiene una precisión que coincide con el intervalo de graduación del reloj del sistema, que es de forma predeterminada de 15,6 milisegundos.
Para obtener más información sobre este miembro, vea la siguiente sección Comentarios.
Observaciones
La estructura WDF_TIMER_CONFIG se usa como entrada para el método WdfTimerCreate. Para inicializar una estructura de WDF_TIMER_CONFIG, el controlador debe llamar a WDF_TIMER_CONFIG_INIT o WDF_TIMER_CONFIG_INIT_PERIODIC.
Establecer el miembro AutomaticSerialization de WDF_TIMER_CONFIG en TRUE no tiene ningún efecto si el ámbito de sincronización de del objeto primario está establecido en WdfSynchronizationScopeNone.
Si el nivel de ejecución del objeto de dispositivo primario es WdfExecutionLevelPassive, puede establecer el miembro AutomaticSerialization en TRUE solo si el objeto del temporizador representa un temporizador de nivel pasivo .
Si un controlador usa el miembro TolerableDelay, el sistema operativo puede agrupar los tiempos de expiración que están próximos y procesarlos todos a la vez. Si el sistema operativo puede controlar las expiraciones de varios temporizadores a la vez, puede mantener el equipo en un estado de bajo consumo durante períodos más largos de tiempo para aumentar la duración de la batería.
Si el miembro TolerableDelay es TolerableDelayUnlimited, el sistema no volverá a su estado completo en (S0) para atender al temporizador si está en un estado de baja potencia (Sx) cuando expire el temporizador. Un controlador puede especificar TolerableDelayUnlimited para aumentar la duración de la batería cuando el temporizador está relacionado con una operación periódica no crítica.
Establecer UseHighResolutionTimer en WdfTrue puede provocar una disminución de la duración de la batería.
Para obtener más información sobre automaticSerialization y sincronizar las funciones de devolución de llamada del controlador, consulte Synchronization Techniques for Framework-Based Drivers.
Para obtener más información sobre los objetos del temporizador del marco, vea Using Timers.
Requisitos
Requisito | Valor |
---|---|
versión mínima de KMDF | 1.0 |
versión mínima de UMDF | 2.0 |
encabezado de | wdftimer.h (incluya Wdf.h) |