The KeInitializeTimerEx routine initializes an extended kernel timer object.
NTKERNELAPI VOID KeInitializeTimerEx( PKTIMER Timer, TIMER_TYPE Type );
Pointer to a timer object, for which the caller provides the storage.
Specifies the type of the timer object, either NotificationTimer or SynchronizationTimer.
The timer object is initialized to a not-signaled state.
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, it is set to a signaled state until a single waiting thread is released and then the timer is reset to a 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.
For more information about timer objects, see Timer Objects and DPCs.
|Windows version||Available starting with Windows 2000.|
|Header||wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)|
|IRQL||"<= DISPATCH_LEVEL (see Remarks section)"|
|DDI compliance rules||IrqlKeDispatchLte, HwStorPortProhibitedDDIs|