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