структура 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 миллисекунда.
Дополнительные сведения об этом члене см. в следующем разделе Примечания.
Комментарии
Структура 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) |