Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The KeInitializeTimerEx routine initializes an extended kernel timer object.
Syntax
void KeInitializeTimerEx(
[out] PKTIMER Timer,
[in] TIMER_TYPE Type
);
Parameters
[out] Timer
Pointer to a timer object, for which the caller provides the storage.
[in] Type
Specifies the type of the timer object, either NotificationTimer or SynchronizationTimer.
Return value
None
Remarks
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.
Use KeSetTimer or KeSetTimerEx to define when the timer will expire.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available starting with Windows 2000. |
Target Platform | Universal |
Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (see Remarks section) |
DDI compliance rules | HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm) |