structure WDF_TIMER_CONFIG (wdftimer.h)
[S’applique à KMDF et UMDF]
La structure WDF_TIMER_CONFIG contient des informations de configuration pour un objet de minuteur de framework.
Syntaxe
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;
Membres
Size
Taille, en octets, de cette structure.
EvtTimerFunc
Pointeur vers une fonction de rappel EvtTimerFun c fournie par le pilote ou NULL.
Period
Période, en millisecondes. L’infrastructure appelle la fonction de rappel EvtTimerFunc à plusieurs reprises, chaque fois que le nombre spécifié de millisecondes s’écoule. Si cette valeur est égale à zéro, l’infrastructure n’appelle pas la EvtTimerFunc fonction de rappel à plusieurs reprises. Au lieu de cela, il appelle la fonction de rappel une fois, une fois que la méthode WdfTimerStartDueTime s’est écoulée. (La période doit être égale à zéro si WdfTimerCreate définit le niveau d’exécution sur WdfExecutionLevelPassive.) La période ne peut pas être une valeur négative.
AutomaticSerialization
Valeur booléenne qui, si TRUE, indique que l’infrastructure synchronise l’exécution de l’objet de minuteur EvtTimerFunc fonction de rappel avec des fonctions de rappel provenant d’autres objets qui se trouvent sous l’objet d’appareil parent du minuteur. Pour plus d’informations, consultez la section Remarques suivante. Si FAUX, l’infrastructure ne synchronise pas l’exécution de la fonction de rappel EvtTimerFunc.
TolerableDelay
Spécifie une tolérance, en millisecondes, pour la période du minuteur qui Période spécifie et pour l’intervalle de temps initial spécifié par le méthode WdfTimerStartDueTime. Pour un minuteur périodique, l’intervalle de temps entre deux expirations de minuteur successives est compris entre (Période - IntolérableDelay) à (Période + IntolérableDelay). L’heure d’expiration initiale est comprise entre DueTime et (DueTime + IntolérableDelay). La valeur IntolérableDelay ne peut pas être négative.
Le membre IntolérableDelay est disponible dans la version 1.9 et les versions ultérieures de KMDF.
À compter de Windows 8.1, dans un pilote utilisant au minimum KMDF 1.13 ou UMDF 2.0, vous pouvez définir ce membre sur IntolérableDelayUnlimited pour spécifier que le système ne doit pas être réveillé suite à l’expiration de ce minuteur.
Si UseHighResolutionTimer est WdfTrue, vous devez définir IntolérableDelay sur zéro. Sinon, WdfTimerCreate retourne un code d’échec.
Pour plus d’informations sur ce membre, consultez la section Remarques suivante.
UseHighResolutionTimer
KMDF uniquement
Ce membre est disponible à partir de Windows 8.1 et KMDF version 1.13.
Valeur WDF_TRI_STATE-typée. Si cette valeur est WdfTrue, l’infrastructure utilise un minuteur haute résolution qui a une précision d’une milliseconde. Si la valeur est WdfFalse ou WdfDefault, l’infrastructure utilise un minuteur standard qui a une précision correspondant à l’intervalle de graduation de l’horloge système, qui est par défaut de 15,6 millisecondes.
Pour plus d’informations sur ce membre, consultez la section Remarques suivante.
Remarques
La structure WDF_TIMER_CONFIG est utilisée comme entrée dans la méthode WdfTimerCreate. Pour initialiser une structure de WDF_TIMER_CONFIG, votre pilote doit appeler WDF_TIMER_CONFIG_INIT ou WDF_TIMER_CONFIG_INIT_PERIODIC.
La définition du membre AutomaticSerialization de WDF_TIMER_CONFIG sur TRUE n’a aucun effet si l’étendue de synchronisation de l’objet parent est définie sur WdfSynchronizationScopeNone.
Si le niveau d’exécution de l’objet d’appareil parent est WdfExecutionLevelPassive, vous pouvez définir le membre AutomaticSerialization sur TRUE uniquement si l’objet du minuteur représente un minuteur de niveau passif .
Si un pilote utilise le membre IntolérableDelay, le système d’exploitation peut regrouper les délais d’expiration qui sont fermés et les traiter à la fois. Si le système d’exploitation peut gérer les expirations de plusieurs minuteurs à la fois, il peut potentiellement conserver l’ordinateur dans un état de faible puissance pendant des périodes plus longues pour augmenter la durée de vie de la batterie.
Si le membre IntolérableDelay est IntolérableDelayUnlimited, le système ne revient pas à son état complet sur (S0) pour traiter le minuteur s’il est dans un état de faible puissance (Sx) lorsque le minuteur expire. Un pilote peut spécifier IntolérableDelayUnlimited pour augmenter la durée de vie de la batterie lorsque le minuteur est lié à une opération périodique non critique.
La définition UseHighResolutionTimer sur WdfTrue peut entraîner une diminution de la durée de vie de la batterie.
Pour plus d’informations sur l' de synchronisation et la synchronisation des fonctions de rappel de pilote, consultez Techniques de synchronisation pour les pilotes Framework-Based.
Pour plus d’informations sur les objets du minuteur de framework, consultez Using Timers.
Exigences
Exigence | Valeur |
---|---|
version minimale de KMDF | 1.0 |
version minimale de UMDF | 2.0 |
d’en-tête | wdftimer.h (include Wdf.h) |