структура WDF_TIMER_CONFIG (wdftimer.h)

[Применимо к KMDF и UMDF]

Структура WDF_TIMER_CONFIG содержит сведения о конфигурации для объекта таймера платформы.

Синтаксис

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;

Члены

Size

Размер данной структуры (в байтах).

EvtTimerFunc

Указатель на предоставленную драйвером функцию обратного вызова EvtTimerFunc или NULL.

Period

Период времени в миллисекундах. Платформа вызывает функцию обратного вызова EvtTimerFunc драйвера несколько раз, когда истечет указанное количество миллисекундах. Если это значение равно нулю, платформа не вызывает функцию обратного вызова EvtTimerFunc драйвера. Вместо этого он вызывает функцию обратного вызова один раз после истечения времени DueTime метода WdfTimerStart. (Период времени должен быть равен нулю, если WdfTimerCreate задает уровень выполнения WdfExecutionLevelPassive.) Период времени не может быть отрицательным значением.

AutomaticSerialization

Логическое значение, указывающее , что платформа синхронизирует выполнение функции обратного вызова EvtTimerFunc объекта таймера с функциями обратного вызова из других объектов, которые находятся под родительским объектом устройства таймера. Дополнительные сведения см. в разделе "Примечания". Значение FALSE означает, что платформа не синхронизирует выполнение функции обратного вызова EvtTimerFunc .

TolerableDelay

Задает допустимое значение в миллисекундах для периода таймера, заданного параметром Period, и начального интервала времени, заданного dueTime метода WdfTimerStart. Для периодического таймера интервал времени между двумя последовательными истечением срока действия таймера будет находиться в диапазоне от (Период - TolerableDelay) до (Период + TolerableDelay). Начальное время окончания срока действия будет находиться в диапазоне от DueTime до (DueTime + TolerableDelay). Значение TolerableDelay не может быть отрицательным.

Элемент TolerableDelay доступен в KMDF версии 1.9 и более поздних версиях.

Начиная с Windows 8.1, в драйвере, использующим не менее KMDF 1.13 или UMDF 2.0, можно задать для этого элемента значение TolerableDelayUnlimited, чтобы указать, что система не должна быть разбужена в результате истечения срока действия таймера.

Если useHighResolutionTimer имеет значение WdfTrue, необходимо задать для параметра TolerableDelay значение 0. В противном случае WdfTimerCreate возвращает код сбоя.

Дополнительные сведения об этом члене см. в следующем разделе Примечания.

UseHighResolutionTimer

Только KMDF

Этот член доступен начиная с Windows 8.1 и KMDF версии 1.13.

WDF_TRI_STATE типизированное значение. Если это значение равно WdfTrue, платформа использует таймер высокого разрешения с точностью в одну миллисекунду. Если значение — WdfFalse или WdfDefault, платформа использует стандартный таймер, который имеет точность, соответствующую интервалу тактов системных часов, который по умолчанию составляет 15,6 миллисекунда.

Предупреждение Если для параметра UseHighResolutionTimer задано значение WdfTrue, необходимо вызвать WdfTimerStart с отрицательным значением параметра DueTime . В противном случае вызов вызовет сбой системы.
 
Если useHighResolutionTimer имеет значение WdfTrue, необходимо задать для параметра TolerableDelay значение 0. В противном случае WdfTimerCreate возвращает код сбоя.

Дополнительные сведения об этом члене см. в следующем разделе Примечания.

Комментарии

Структура WDF_TIMER_CONFIG используется в качестве входных данных для метода WdfTimerCreate . Чтобы инициализировать структуру WDF_TIMER_CONFIG , драйвер должен вызвать WDF_TIMER_CONFIG_INIT или WDF_TIMER_CONFIG_INIT_PERIODIC.

Установка для элемента AutomaticSerializationWDF_TIMER_CONFIGзначения TRUE не влияет, если для область синхронизации родительского объекта задано значение WdfSynchronizationScopeNone.

Если уровень выполнения родительского объекта устройства — WdfExecutionLevelPassive, можно задать для элемента AutomaticSerializationзначение TRUE , только если объект таймера представляет таймер пассивного уровня.

Если драйвер использует элемент TolerableDelay , операционная система может группировать время окончания срока действия, близкое друг к другу, и обрабатывать их все одновременно. Если операционная система может справиться с истечением срока действия нескольких таймеров одновременно, она может поддерживать компьютер в низком энергопотреблении в течение более длительных периодов времени, чтобы увеличить время работы батареи.

Если элемент TolerableDelay имеет значение TolerableDelayUnlimited, система не вернется в состояние полного включения (S0) для обслуживания таймера, если он находится в маломощном состоянии (Sx) по истечении срока действия таймера. Драйвер может указать TolerableDelayUnlimited , чтобы увеличить время работы батареи, если таймер связан с некритичной периодической операцией.

Установка параметра UseHighResolutionTimer в значение WdfTrue может привести к уменьшению времени работы батареи.

Дополнительные сведения об AutomaticSerialization и синхронизации функций обратного вызова драйвера см. в разделе Методы синхронизации для драйверов Framework-Based.

Дополнительные сведения об объектах таймера платформы см. в разделе Использование таймеров.

Требования

Требование Значение
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdftimer.h (включая Wdf.h)

См. также раздел

EvtTimerFunc

WDF_TIMER_CONFIG_INIT

WDF_TIMER_CONFIG_INIT_PERIODIC

WdfTimerCreate

WdfTimerStart