Condividi tramite


struttura WDF_TIMER_CONFIG (wdftimer.h)

[Si applica a KMDF e UMDF]

La struttura WDF_TIMER_CONFIG contiene informazioni di configurazione per un oggetto timer del framework.

Sintassi

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;

Members

Size

Dimensione, in byte, della struttura.

EvtTimerFunc

Puntatore a una funzione di callback EvtTimerFunc fornita dal driver o NULL.

Period

Periodo di tempo, espresso in millisecondi. Il framework chiama ripetutamente la funzione di callback EvtTimerFunc del driver ogni volta che il numero specificato di millisecondi è trascorso. Se questo valore è zero, il framework non chiama ripetutamente la funzione di callback EvtTimerFunc del driver. Chiama invece la funzione di callback una sola volta, dopo che è trascorso il duetime del metodo WdfTimerStart. Il periodo di tempo deve essere zero se WdfTimerCreate imposta il livello di esecuzione su WdfExecutionLevelPassive. Il periodo di tempo non può essere un valore negativo.

AutomaticSerialization

Valore booleano che, se TRUE, indica che il framework sincronizza l'esecuzione della funzione di callback EvtTimerFunc dell'oggetto timer con funzioni di callback di altri oggetti che si trovano sotto l'oggetto dispositivo padre del timer. Per ulteriori informazioni, vedere la sezione Osservazioni successiva. Se FALSE, il framework non sincronizza l'esecuzione della funzione di callback EvtTimerFunc .

TolerableDelay

Specifica una tolleranza, in millisecondi, per il periodo timer specificato da Period e per l'intervallo di tempo iniziale specificato dal metodo DueTime del metodo WdfTimerStart. Per un timer periodico, l'intervallo di tempo tra due scadenze timer successive sarà compreso nell'intervallo compreso tra (Period - TolerableDelay) e (Period + TolerableDelay). L'ora di scadenza iniziale sarà compreso nell'intervallo da DueTime a (DueTime + TolerableDelay). Il valore TolerableDelay non può essere negativo.

Il membro TolerableDelay è disponibile nella versione 1.9 e successive di KMDF.

A partire da Windows 8.1, in un driver che usa almeno KMDF 1.13 o UMDF 2.0, è possibile impostare questo membro su TolerableDelayUnlimited per specificare che il sistema non deve essere riattivato in seguito alla scadenza di questo timer.

Se UseHighResolutionTimer è WdfTrue, è necessario impostare TolerableDelay su zero. In caso contrario, WdfTimerCreate restituisce un codice di errore.

Per altre informazioni su questo membro, vedere la sezione Osservazioni seguente.

UseHighResolutionTimer

Solo KMDF

Questo membro è disponibile a partire da Windows 8.1 e KMDF versione 1.13.

Valore tipizzato WDF_TRI_STATE. Se questo valore è WdfTrue, il framework usa un timer ad alta risoluzione con un'accuratezza di un millisecondo. Se il valore è WdfFalse o WdfDefault, il framework usa un timer standard con un'accuratezza corrispondente all'intervallo di graduazione dell'orologio di sistema, che è per impostazione predefinita di 15,6 millisecondi.

Avviso Se si imposta UseHighResolutionTimer su WdfTrue, è necessario chiamare WdfTimerStart con il parametro DueTime impostato su un valore negativo. In caso contrario, la chiamata causa l'arresto anomalo del sistema.
 
Se UseHighResolutionTimer è WdfTrue, è necessario impostare TolerableDelay su zero. In caso contrario, WdfTimerCreate restituisce un codice di errore.

Per altre informazioni su questo membro, vedere la sezione Osservazioni seguente.

Commenti

La struttura WDF_TIMER_CONFIG viene usata come input per il metodo WdfTimerCreate . Per inizializzare una struttura di WDF_TIMER_CONFIG , il driver deve chiamare WDF_TIMER_CONFIG_INIT o WDF_TIMER_CONFIG_INIT_PERIODIC.

L'impostazione del membro AutomaticSerialization di WDF_TIMER_CONFIG su TRUE non ha alcun effetto se l'ambito di sincronizzazione dell'oggetto padre è impostato su WdfSynchronizationScopeNone.

Se il livello di esecuzione dell'oggetto dispositivo padre è WdfExecutionLevelPassive, è possibile impostare il membro AutomaticSerialization su TRUE solo se l'oggetto timer rappresenta un timer a livello passivo.

Se un driver usa il membro TolerableDelay , il sistema operativo può raggruppare le ore di scadenza che si avvicinano ed elaborarle tutte contemporaneamente. Se il sistema operativo può gestire le scadenze di più timer contemporaneamente, può potenzialmente mantenere il computer in uno stato a basso consumo per lunghi periodi di tempo per aumentare la durata della batteria.

Se il membro TolerableDelay è TolerableDelayUnlimited, il sistema non tornerà al suo stato completo (S0) per gestire il timer se è in uno stato a basso consumo (Sx) alla scadenza del timer. Un driver può specificare TolerableDelayUnlimited per aumentare la durata della batteria quando il timer è correlato a un'operazione periodica non critica.

L'impostazione di UseHighResolutionTimer su WdfTrue può comportare una riduzione della durata della batteria.

Per altre informazioni su AutomaticSerialization e la sincronizzazione delle funzioni di callback dei driver, vedere Tecniche di sincronizzazione per i driver Framework-Based.

Per altre informazioni sugli oggetti timer del framework, vedere Uso di timer.

Requisiti

Requisito Valore
Versione KMDF minima 1,0
Versione UMDF minima 2,0
Intestazione wdftimer.h (include Wdf.h)

Vedi anche

EvtTimerFunc

WDF_TIMER_CONFIG_INIT

WDF_TIMER_CONFIG_INIT_PERIODIC

WdfTimerCreate

WdfTimerStart