Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Применимо к 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;
Members
Size
Размер этой структуры в байтах.
EvtTimerFunc
Указатель на функцию обратного вызова EvtTimerFunc или NULL.
Period
Период времени в миллисекундах. Платформа многократно вызывает функцию обратного вызова EvtTimerFunc драйвера при каждом истечении указанного числа миллисекунда. Если это значение равно нулю, платформа не вызывает функцию обратного вызова EvtTimerFunc драйвера. Вместо этого он вызывает функцию обратного вызова один раз, после истечения срока действия метода WdfTimerStart метода DueTime . (Период времени должен быть равен нулю, если WdfTimerCreate задает уровень выполнения для WdfExecutionLevelPassive.) Период времени не может быть отрицательным значением.
AutomaticSerialization
Логическое значение, указывающее, что платформа синхронизирует выполнение функции обратного вызова объекта EvtTimerFunc с функциями обратного вызова из других объектов, которые находятся под родительским объектом устройства таймера. Дополнительные сведения см. в следующем разделе "Примечания". Если значение FALSE, платформа не синхронизирует выполнение функции обратного вызова EvtTimerFunc .
TolerableDelay
Указывает допустимое значение (в миллисекундах) для периода таймера, указанного периодом времени и начальным интервалом времени, заданным методом WdfTimerStart DueTimerStart. Для периодического таймера интервал времени между двумя последовательными сроками действия таймера будет находиться в диапазоне от (PeriodTolerableDelay) до (Period - + TolerableDelay). Начальное время окончания срока действия будет находиться в диапазоне от DueTimeдо (DueTime + TolerableDelay). Значение TolerableDelay не может быть отрицательным.
Член TolerableDelay доступен в версии 1.9 и более поздних версиях KMDF.
В драйвере с помощью KMDF 1.13 или UMDF 2.0 можно задать для этого члена значение TolerableDelayUnlimited , чтобы указать, что система не должна проснуться в результате истечения срока действия таймера.
Если UseHighResolutionTimer имеет значение WdfTrue, необходимо задать значение TolerableDelay равным нулю . В противном случае WdfTimerCreate возвращает код сбоя.
Дополнительные сведения об этом члене см. в следующем разделе "Примечания".
UseHighResolutionTimer
Только KMDF
Этот член доступен начиная с KMDF версии 1.13.
Значение WDF_TRI_STATE типа. Если это значение равно WdfTrue, платформа использует таймер высокого разрешения, который имеет точность одного миллисекунда. Если значение равно WdfFalse или WdfDefault, платформа использует стандартный таймер, который имеет точность, соответствующую интервалу тика системных часов, который по умолчанию составляет 15,6 миллисекунда.
Предупреждение
Если для параметра UseHighResolutionTimer задано значение WdfTrue, необходимо вызвать WdfTimerStart с параметром DueTime , заданным для отрицательного значения. В противном случае вызов приводит к сбою системы.
Если UseHighResolutionTimer имеет значение WdfTrue, необходимо задать значение TolerableDelay равным нулю . В противном случае WdfTimerCreate возвращает код сбоя.
Замечания
Структура WDF_TIMER_CONFIG используется в качестве входных данных для метода WdfTimerCreate . Чтобы инициализировать структуру WDF_TIMER_CONFIG , драйвер должен вызвать WDF_TIMER_CONFIG_INIT или WDF_TIMER_CONFIG_INIT_PERIODIC.
Если область синхронизации родительского объекта имеет значение WdfSynchronizationScopeNone, для элемента WDF_TIMER_CONFIGзначение TRUE не действует.
Если уровень выполнения родительского объекта устройства — WdfExecutionLevelPassive, можно задать для элемента AutomaticSerializationзначение TRUE , только если объект таймера представляет таймер пассивного уровня.
Если драйвер использует член TolerableDelay , операционная система может группировать время окончания срока действия, которые закрываются вместе и обрабатывают их одновременно. Если операционная система может одновременно обрабатывать истечение срока действия нескольких таймеров, это может потенциально сохранить компьютер в состоянии низкой мощности в течение более длительного периода времени, чтобы увеличить время работы батареи.
Если член TolerableDelay является TolerableDelayUnlimited, система не вернется к полному состоянию (S0) для обслуживания таймера, если он находится в состоянии низкой мощности (Sx) при истечении срока действия таймера. Драйвер может указать TolerableDelayUnlimited , чтобы увеличить время работы батареи, когда таймер связан с некритичной периодической операцией.
Настройка UseHighResolutionTimer в WdfTrue позволит включить объект таймера высокого разрешения вместо регулярного таймера и может привести к уменьшению времени существования батареи. Используйте это только в том случае, если на самом деле требуется более высокое разрешение. Дополнительные сведения и альтернативные варианты см. в выделенной статье по таймерам высокого разрешения.
Дополнительные сведения о функциях обратного вызова драйвера automaticSerialization и синхронизации см. в разделе "Методы синхронизации" для драйверов Framework-Based.
Дополнительные сведения об объектах таймера платформы см. в разделе "Использование таймеров".
Требования
| Требование | Ценность |
|---|---|
| Минимальная версия KMDF | 1.0 |
| Минимальная версия UMDF | 2.0 |
| Header | wdftimer.h (include Wdf.h) |