Implemented NDIS timer functions.

svn path=/trunk/; revision=4731
This commit is contained in:
Eric Kohl 2003-05-20 13:00:41 +00:00
parent ecd7b2f8f3
commit 74592b5432

View file

@ -10,12 +10,28 @@
#include <ndissys.h>
VOID STDCALL
MiniportTimerDpc(
PKDPC Dpc,
PVOID DeferredContext,
PVOID SystemArgument1,
PVOID SystemArgument2)
{
PNDIS_MINIPORT_TIMER Timer;
Timer = (PNDIS_MINIPORT_TIMER)DeferredContext;
Timer->MiniportTimerFunction (NULL, Timer->MiniportTimerContext, NULL, NULL);
}
VOID
EXPORT
NdisCancelTimer(
IN PNDIS_TIMER Timer,
OUT PBOOLEAN TimerCancelled)
{
*TimerCancelled = KeCancelTimer (&Timer->Timer);
}
@ -24,6 +40,7 @@ EXPORT
NdisGetCurrentSystemTime (
IN OUT PLONGLONG pSystemTime)
{
KeQuerySystemTime (pSystemTime);
}
@ -34,6 +51,9 @@ NdisInitializeTimer(
IN PNDIS_TIMER_FUNCTION TimerFunction,
IN PVOID FunctionContext)
{
KeInitializeTimer (&Timer->Timer);
KeInitializeDpc (&Timer->Dpc, TimerFunction, FunctionContext);
}
@ -43,6 +63,7 @@ NdisMCancelTimer(
IN PNDIS_MINIPORT_TIMER Timer,
OUT PBOOLEAN TimerCancelled)
{
*TimerCancelled = KeCancelTimer (&Timer->Timer);
}
@ -54,6 +75,13 @@ NdisMInitializeTimer(
IN PNDIS_TIMER_FUNCTION TimerFunction,
IN PVOID FunctionContext)
{
KeInitializeTimer (&Timer->Timer);
KeInitializeDpc (&Timer->Dpc, MiniportTimerDpc, (PVOID) Timer);
Timer->MiniportTimerFunction = TimerFunction;
Timer->MiniportTimerContext = FunctionContext;
Timer->Miniport = MiniportAdapterHandle;
}
@ -63,6 +91,11 @@ NdisMSetPeriodicTimer(
IN PNDIS_MINIPORT_TIMER Timer,
IN UINT MillisecondsPeriod)
{
LARGE_INTEGER Timeout;
Timeout.QuadPart = MillisecondsPeriod * -10000;
KeSetTimerEx (&Timer->Timer, Timeout, MillisecondsPeriod, &Timer->Dpc);
}
@ -72,6 +105,11 @@ NdisMSetTimer(
IN PNDIS_MINIPORT_TIMER Timer,
IN UINT MillisecondsToDelay)
{
LARGE_INTEGER Timeout;
Timeout.QuadPart = MillisecondsToDelay * -10000;
KeSetTimer (&Timer->Timer, Timeout, &Timer->Dpc);
}
@ -81,6 +119,11 @@ NdisSetTimer(
IN PNDIS_TIMER Timer,
IN UINT MillisecondsToDelay)
{
LARGE_INTEGER Timeout;
Timeout.QuadPart = MillisecondsToDelay * -10000;
KeSetTimer (&Timer->Timer, Timeout, &Timer->Dpc);
}
/* EOF */