Partager via


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.

Avertissement Si vous définissez UseHighResolutionTimer sur WdfTrue, vous devez appeler WdfTimerStart avec le paramètre DueTime défini sur une valeur négative. Sinon, l’appel provoque le blocage du système.
 
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.

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)

Voir aussi

EvtTimerFunc

WDF_TIMER_CONFIG_INIT

WDF_TIMER_CONFIG_INIT_PERIODIC

WdfTimerCreate

WdfTimerStart