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
);
32 OUT PBOOLEAN TimerCancelled
)
34 *TimerCancelled
= KeCancelTimer (&Timer
->Timer
);
40 NdisGetCurrentSystemTime (
41 IN OUT PLONGLONG pSystemTime
)
43 KeQuerySystemTime (pSystemTime
);
50 IN OUT PNDIS_TIMER Timer
,
51 IN PNDIS_TIMER_FUNCTION TimerFunction
,
52 IN PVOID FunctionContext
)
54 KeInitializeTimer (&Timer
->Timer
);
56 KeInitializeDpc (&Timer
->Dpc
, TimerFunction
, FunctionContext
);
63 IN PNDIS_MINIPORT_TIMER Timer
,
64 OUT PBOOLEAN TimerCancelled
)
66 *TimerCancelled
= KeCancelTimer (&Timer
->Timer
);
73 IN OUT PNDIS_MINIPORT_TIMER Timer
,
74 IN NDIS_HANDLE MiniportAdapterHandle
,
75 IN PNDIS_TIMER_FUNCTION TimerFunction
,
76 IN PVOID FunctionContext
)
78 KeInitializeTimer (&Timer
->Timer
);
80 KeInitializeDpc (&Timer
->Dpc
, MiniportTimerDpc
, (PVOID
) Timer
);
82 Timer
->MiniportTimerFunction
= TimerFunction
;
83 Timer
->MiniportTimerContext
= FunctionContext
;
84 Timer
->Miniport
= MiniportAdapterHandle
;
90 NdisMSetPeriodicTimer(
91 IN PNDIS_MINIPORT_TIMER Timer
,
92 IN UINT MillisecondsPeriod
)
94 LARGE_INTEGER Timeout
;
96 Timeout
.QuadPart
= MillisecondsPeriod
* -10000;
98 KeSetTimerEx (&Timer
->Timer
, Timeout
, MillisecondsPeriod
, &Timer
->Dpc
);
105 IN PNDIS_MINIPORT_TIMER Timer
,
106 IN UINT MillisecondsToDelay
)
108 LARGE_INTEGER Timeout
;
110 Timeout
.QuadPart
= MillisecondsToDelay
* -10000;
112 KeSetTimer (&Timer
->Timer
, Timeout
, &Timer
->Dpc
);
119 IN PNDIS_TIMER Timer
,
120 IN UINT MillisecondsToDelay
)
122 LARGE_INTEGER Timeout
;
124 Timeout
.QuadPart
= MillisecondsToDelay
* -10000;
126 KeSetTimer (&Timer
->Timer
, Timeout
, &Timer
->Dpc
);