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.
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) |