Freigeben über


WDF_TIMER_CONFIG Struktur (wdftimer.h)

[Gilt für KMDF und UMDF]

Die WDF_TIMER_CONFIG-Struktur enthält Konfigurationsinformationen für ein Framework-Timerobjekt.

Syntax

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;

Angehörige

Size

Die Größe dieser Struktur in Byte.

EvtTimerFunc

Ein Zeiger auf einen vom Treiber bereitgestellten EvtTimerFunc Rückruffunktion oder NULL-.

Period

Ein Zeitraum in Millisekunden. Das Framework ruft die EvtTimerFunc Rückruffunktion des Treibers wiederholt auf, wenn die angegebene Anzahl von Millisekunden verstrichen ist. Wenn dieser Wert null ist, ruft das Framework die EvtTimerFunc Rückruffunktion des Treibers nicht wiederholt auf. Stattdessen wird die Rückruffunktion einmal aufgerufen, nachdem die WdfTimerStart- -Methode DueTime- verstrichen ist. (Der Zeitraum muss null sein, wenn WdfTimerCreate die Ausführungsebene auf WdfExecutionLevelPassive.) Der Zeitraum darf kein negativer Wert sein.

AutomaticSerialization

Ein boolescher Wert, der, wenn TRUE, angibt, dass das Framework die Ausführung des EvtTimerFunc Rückruffunktion mit Rückruffunktionen aus anderen Objekten synchronisiert, die sich unter dem übergeordneten Geräteobjekt des Timers befinden. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise". Wenn FALSE-, synchronisiert das Framework die Ausführung der EvtTimerFunc Rückruffunktion nicht.

TolerableDelay

Gibt eine Toleranz in Millisekunden für den Zeitgeberzeitraum an, der Period angibt, und für das anfängliche Zeitintervall, das die WdfTimerStart--Methode DueTime- angibt. Bei einem periodischen Timer befindet sich das Zeitintervall zwischen zwei aufeinander folgenden Zeitgeberablaufen im Bereich von (Zeitraum - TolerableDelay) bis (Zeitraum + TolerableDelay). Die anfängliche Ablaufzeit liegt zwischen DueTime- und (DueTime + TolerableDelay). Der wert TolerableDelay kann nicht negativ sein.

Das TolerableDelay Member ist in Version 1.9 und höheren Versionen von KMDF verfügbar.

Ab Windows 8.1 können Sie in einem Treiber, der mindestens KMDF 1.13 oder UMDF 2.0 verwendet, diesen Member auf TolerableDelayUnlimited- festlegen, um anzugeben, dass das System aufgrund des Ablaufs dieses Zeitgebers nicht wieder aufgeweckt werden soll.

Wenn UseHighResolutionTimer-WdfTrue-ist, müssen Sie TolerableDelay- auf Null festlegen. Andernfalls gibt WdfTimerCreate einen Fehlercode zurück.

Weitere Informationen zu diesem Mitglied finden Sie im folgenden Abschnitt "Hinweise".

UseHighResolutionTimer

nur KMDF

Dieses Mitglied ist ab Windows 8.1 und KMDF, Version 1.13, verfügbar.

Ein WDF_TRI_STATE-typed-Wert. Wenn dieser Wert WdfTrueist, verwendet das Framework einen Zeitgeber mit hoher Auflösung mit einer Genauigkeit von einer Millisekunden. Wenn der Wert WdfFalse- oder WdfDefault-ist, verwendet das Framework einen Standardtimer, der eine Genauigkeit aufweist, die dem Systemuhr-Tickintervall entspricht, das standardmäßig 15,6 Millisekunden entspricht.

Warnung Wenn Sie UseHighResolutionTimer- auf WdfTrue-festlegen, müssen Sie WdfTimerStart- aufrufen, wobei der DueTime Parameter auf einen negativen Wert festgelegt ist. Andernfalls stürzt das System ab.
 
Wenn UseHighResolutionTimer-WdfTrue-ist, müssen Sie TolerableDelay- auf Null festlegen. Andernfalls gibt WdfTimerCreate einen Fehlercode zurück.

Weitere Informationen zu diesem Mitglied finden Sie im folgenden Abschnitt "Hinweise".

Bemerkungen

Die WDF_TIMER_CONFIG-Struktur wird als Eingabe für die WdfTimerCreate-Methode verwendet. Um eine WDF_TIMER_CONFIG-Struktur zu initialisieren, muss ihr Treiber entweder WDF_TIMER_CONFIG_INIT oder WDF_TIMER_CONFIG_INIT_PERIODICaufrufen.

Das Festlegen der AutomaticSerialization Member von WDF_TIMER_CONFIG auf TRUE hat keine Auswirkung, wenn der Synchronisierungsbereich des übergeordneten Objekts auf WdfSynchronizationScopeNonefestgelegt ist.

Wenn die Ausführungsebene des übergeordneten Geräteobjekts WdfExecutionLevelPassiveist, können Sie das AutomaticSerialization-Element auf TRUE- festlegen, wenn das Timerobjekt einen Zeitgeber auf passiver Ebenedarstellt.

Wenn ein Treiber das TolerableDelay Mitglied verwendet, kann das Betriebssystem Ablaufzeiten gruppieren, die nah beieinander liegen und alle gleichzeitig verarbeiten. Wenn das Betriebssystem die Ablaufzeit mehrerer Timer gleichzeitig verarbeiten kann, kann er den Computer über längere Zeiträume in einem Energiesparzustand halten, um die Akkulaufzeit zu erhöhen.

Wenn das TolerableDelay Member TolerableDelayUnlimitedist, kehrt das System nicht zum vollständigen (S0)-Zustand zurück, um den Timer zu bedienen, wenn es sich in einem Zustand mit niedriger Leistung (Sx) befindet, wenn der Timer abläuft. Ein Treiber kann TolerableDelayUnlimited- angeben, um die Akkulaufzeit zu erhöhen, wenn der Timer mit einem nicht kritischen periodischen Betrieb verbunden ist.

Das Festlegen UseHighResolutionTimer- auf WdfTrue- kann zu einer verringerten Akkulaufzeit führen.

Weitere Informationen zu AutomaticSerialization und synchronisieren von Treiberrückruffunktionen finden Sie unter Synchronisierungstechniken für Framework-Based Treiber.

Weitere Informationen zu Framework-Timerobjekten finden Sie unter Using Timers.

Anforderungen

Anforderung Wert
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Header- wdftimer.h (include Wdf.h)

Siehe auch

EvtTimerFunc

WDF_TIMER_CONFIG_INIT

WDF_TIMER_CONFIG_INIT_PERIODIC

WdfTimerCreate-

WdfTimerStart-