The ExDeleteTimer routine deletes a timer object that was previously allocated by the ExAllocateTimer routine.
BOOLEAN ExDeleteTimer( PEX_TIMER Timer, BOOLEAN Cancel, BOOLEAN Wait, PEXT_DELETE_PARAMETERS Parameters );
Whether to cancel the timer if it is currently set. If TRUE, the routine cancels the timer if the timer is set. If FALSE, the routine does not cancel the timer if it is set. If the caller sets Wait to TRUE, Cancel must also be TRUE; otherwise, a bug check occurs.
Whether to wait for the timer to finish expiring if the timer has already started the process of expiring. If TRUE, the routine waits for the timer to expire. If FALSE, the routine does not wait. For more information, see Remarks.
This routine returns TRUE if Cancel is TRUE and the timer was canceled. Otherwise, the routine returns FALSE. For more information, see Remarks.
After your driver calls this routine, the timer object pointed to by Timer might no longer be valid. However, the Timer parameter value passed to an ExTimerCallback callback routine, if the driver implements this routine, is always a valid pointer to a timer object.
If Cancel is TRUE, a return value of FALSE indicates that the timer was never set, or that the timer was set but expired before it could be canceled. If Cancel is FALSE, the routine always returns FALSE.
This routine can block if Wait is TRUE. If ExDeleteTimer is called from the driver's ExTimerCallback routine, which is called at DISPATCH_LEVEL, the Wait parameter in this call must be FALSE.
If Wait is TRUE, the routine must be called at IRQL <= APC_LEVEL. If Wait is FALSE, the routine can be called at IRQL <= DISPATCH_LEVEL.
For more information, see Deleting a System-Allocated Timer Object.
|Minimum supported client||Available starting with Windows 8.1.|
|Header||wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)|