Функция 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, как только процессор становится доступным.
Если в параметре MillisecondsPeriod указано ненулевое значение, объект таймера снова помещается в очередь до тех пор, пока не истечет интервал, указанный в millisecondsPeriod . По истечении этого интервала объект таймера отправляется в очередь, а функция NetTimerCallback , предоставляемая вызывающим объектом, запускается один раз в IRQL = DISPATCH_LEVEL как только процессор становится доступным.
Чтобы отменить таймер, вызовите функцию NdisCancelTimerObject .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Универсальное |
Верхняя часть | ndis.h (включая Ndis.h) |
Библиотека | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | Irql_Timer_Function(ndis), PeriodicTimer(ndis) |