VOID
KeInitializeTimerEx(
IN PKTIMER Timer,
IN TIMER_TYPE Type
);
KeInitializeTimerEx initializes an extended kernel timer object.
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.
KeCancelTimer, KeReadStateTimer, KeSetTimer, KeSetTimerEx, KeWaitForMultipleObjects, KeWaitForSingleObject