NdisSetTimerEx function
Note NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.
NdisSetTimerEx sets a timer object to fire after a specified interval, thereby passing a context to and running an associated timer function after the timer fires.
Syntax
VOID NdisSetTimerEx(
_In_ PNDIS_TIMER Timer,
_In_ UINT MillisecondsToDelay,
_In_ PVOID FunctionContext
);
Parameters
Timer [in]
Pointer to caller-supplied resident storage for a timer object previously initialized with NdisInitializeTimer.MillisecondsToDelay [in]
Specifies the interval, in milliseconds, to elapse before NdisSetTimerEx calls the associated timer function.FunctionContext [in]
Pointer to a caller-supplied context to be passed to the associated timer function when it is called.
Return value
None
Remarks
NdisSetTimerEx causes the driver-supplied timer function to run once after the given MillisecondsToDelay expires. This timer function becomes associated with the timer object after NdisInitializeTimer is called. Note that the context at FunctionContext is used when this timer function is called rather than using the default context that was specified during the NdisInitializeTimer call. Execution of this timer function is episodic, rather than periodic. NdisSetTimer or NdisSetTimerEx is called each time the associated timer function should be run.
The following describes the syntax of the driver-supplied timer function:
VOID
(*PNDIS_TIMER_FUNCTION)(
IN PVOID SystemSpecific1,
IN PVOID FunctionContext,
IN PVOID SystemSpecific2,
IN PVOID SystemSpecific3
);
If an entity calls NdisSetTimer, NdisSetTimerEx or the NdisCancelTimer function with the same Timer pointer that was originally passed to another NdisSetTimerEx call before the originally specified MillisecondsToDelay has expired, the current call cancels the preceding call to NdisSetTimerEx. Any call to NdisSetTimerEx resets the given timer to expire at the interval specified in the most recent call and causes the associated timer function to run when the most recently specified interval has expired.
Timer resolution on the host varies. Consequently, calling NdisSetTimerEx with small time-interval values does not necessarily cause the execution of the timer function to occur exactly when the specified interval expires. The minimum practicable interval to specify on Windows 2000 and later platforms is ten milliseconds.
Requirements
Target platform |
Universal |
Version |
Not supported for NDIS 6.0 drivers in Windows Vista. Use NdisSetTimerObjectinstead. Supported for NDIS 5.1 drivers in Windows Vista and Windows XP. |
Header |
Ndis.h (include Ndis.h) |
Library |
Ndis.lib |
IRQL |
<= DISPATCH_LEVEL |
See also