2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS NDIS library
5 * PURPOSE: Time related routines
6 * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
8 * CSH 01/08-2000 Created
16 PVOID DeferredContext,
17 PVOID SystemArgument1,
18 PVOID SystemArgument2)
20 PNDIS_MINIPORT_TIMER Timer;
22 Timer = (PNDIS_MINIPORT_TIMER)DeferredContext;
24 Timer->MiniportTimerFunction (NULL, Timer->MiniportTimerContext, NULL, NULL);
35 OUT PBOOLEAN TimerCancelled)
37 *TimerCancelled = KeCancelTimer (&Timer->Timer);
46 NdisGetCurrentSystemTime (
47 IN OUT PLARGE_INTEGER pSystemTime)
49 KeQuerySystemTime (pSystemTime);
59 IN OUT PNDIS_TIMER Timer,
60 IN PNDIS_TIMER_FUNCTION TimerFunction,
61 IN PVOID FunctionContext)
63 KeInitializeTimer (&Timer->Timer);
65 KeInitializeDpc (&Timer->Dpc, (PKDEFERRED_ROUTINE)TimerFunction, FunctionContext);
75 IN PNDIS_MINIPORT_TIMER Timer,
76 OUT PBOOLEAN TimerCancelled)
78 *TimerCancelled = KeCancelTimer (&Timer->Timer);
88 IN OUT PNDIS_MINIPORT_TIMER Timer,
89 IN NDIS_HANDLE MiniportAdapterHandle,
90 IN PNDIS_TIMER_FUNCTION TimerFunction,
91 IN PVOID FunctionContext)
93 KeInitializeTimer (&Timer->Timer);
95 KeInitializeDpc (&Timer->Dpc, MiniportTimerDpc, (PVOID) Timer);
97 Timer->MiniportTimerFunction = TimerFunction;
98 Timer->MiniportTimerContext = FunctionContext;
99 Timer->Miniport = MiniportAdapterHandle;
108 NdisMSetPeriodicTimer(
109 IN PNDIS_MINIPORT_TIMER Timer,
110 IN UINT MillisecondsPeriod)
112 LARGE_INTEGER Timeout;
114 Timeout.QuadPart = MillisecondsPeriod * -10000;
116 KeSetTimerEx (&Timer->Timer, Timeout, MillisecondsPeriod, &Timer->Dpc);
126 IN PNDIS_MINIPORT_TIMER Timer,
127 IN UINT MillisecondsToDelay)
129 LARGE_INTEGER Timeout;
131 Timeout.QuadPart = MillisecondsToDelay * -10000;
133 KeSetTimer (&Timer->Timer, Timeout, &Timer->Dpc);
143 IN PNDIS_TIMER Timer,
144 IN UINT MillisecondsToDelay)
146 LARGE_INTEGER Timeout;
148 Timeout.QuadPart = MillisecondsToDelay * -10000;
150 KeSetTimer (&Timer->Timer, Timeout, &Timer->Dpc);