Поделиться через


Функция NdisSetTimerObject (ndis.h)

Функция NdisSetTimerObject задает объект таймера для запуска после указанного интервала или периодически.

Синтаксис

BOOLEAN NdisSetTimerObject(
  [in]           NDIS_HANDLE   TimerObject,
  [in]           LARGE_INTEGER DueTime,
  [in, optional] LONG          MillisecondsPeriod,
  [in, optional] PVOID         FunctionContext
);

Параметры

[in] TimerObject

Дескриптор объекта таймера, который предоставляет NDIS при вызове драйвера функция NdisAllocateTimerObject.

[in] DueTime

Абсолютное или относительное время истечения срока действия таймера. Если значение параметра DueTime отрицательное, время истечения срока действия относительно текущего системного времени. В противном случае срок действия является абсолютным. Время истечения срока действия выражается в системных единицах времени (100-наносекундных интервалов). Абсолютное время истечения срока действия отслеживает любые изменения в системном времени; относительные сроки действия не влияют на изменения системного времени.

[in, optional] MillisecondsPeriod

Периодический интервал времени в миллисекундах, который истекает между каждым разом таймера и следующим вызовом функции NetTimerCallback, если таймер не отменен. Значение этого параметра должно быть меньше или равно MAXLONG.

[in, optional] FunctionContext

Указатель на область контекста, предоставляемую вызывающим объектом, которая NDIS передает связанной функции NetTimerCallback при срабатывании таймера. Если этот параметр NULL, NDIS использует значение по умолчанию, указанное в . структура NDIS_TIMER_CHARACTERISTICS.

Возвращаемое значение

NdisSetTimerObject возвращает TRUE, если объект таймера уже был в очереди системного таймера; в противном случае возвращается FALSE.

Замечания

После вызова драйвера NdisSetTimerObjectобъект таймера помещается в очередь, пока не истекает интервал, указанный в параметре DueTime. После истечения срока действия интервала объект таймера удаляется, и вызывающий объект функция NetTimerCallback выполняется один раз в IRQL = DISPATCH_LEVEL, как только процессор становится доступным.

Если значение, отличное от нуля, указано в параметре МиллисекундаPeriod, объект таймера снова помещается в очередь до истечения интервала, указанного в МиллисекундаPeriod. После истечения срока действия этого интервала объект таймера будет повторно указан, и вызывающий объект функция NetTimerCallback выполняется один раз в IRQL = DISPATCH_LEVEL, как только процессор становится доступным.

примечание начиная с Windows 7, вы можете сократить потребление энергии, вызвав вызов NdisSetCoalescableTimerObject вместо NdisSetTimerObject, если точность точного таймера не требуется.
 
Дополнительные сведения о поведении таймера см. в разделе KeSetTimerEx.

Чтобы отменить таймер, вызовите функцию NdisCancelTimerObject.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Поддерживается в NDIS 6.0 и более поздних версиях.
целевая платформа Всеобщий
заголовка ndis.h (include Ndis.h)
библиотеки Ndis.lib
IRQL <= DISPATCH_LEVEL
правил соответствия DDI Irql_Timer_Function(ndis), PeriodicTimer(ndis)

См. также

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback