KeInitializeTimerEx

VOID
    KeInitializeTimerEx(

        IN PKTIMER  Timer,
        IN TIMER_TYPE  Type
        );

KeInitializeTimerEx initializes an extended kernel timer object.

Parameters

Timer
Points to a timer object, for which the caller provides the storage.
Type
Specifies the type of the timer object, either NotificationTimer or SynchronizationTimer.

Comments

The timer object is initialized with a state of Not-Signaled.

Storage for a timer object must be resident: in the device extension of a driver-created device object, in the controller extension of a driver-created controller object, or in nonpaged pool allocated by the caller.

When a notification timer expires, all waiting threads are released and the timer remains in the Signaled state until it is explicitly reset. When a synchronization timer expires, its state is set to Signaled until a single waiting thread is released and then the timer is reset to the Not-Signaled state.

Callers of KeInitializeTimerEx should be running at IRQL DISPATCH_LEVEL or lower. It is best to initialize timers at IRQL PASSIVE_LEVEL.

Use KeSetTimer or KeSetTimerEx to define when the timer will expire.

See Also

KeCancelTimer, KeReadStateTimer, KeSetTimer, KeSetTimerEx, KeWaitForMultipleObjects, KeWaitForSingleObject