The granularity of a Kernel-defined timer object interval is around 10 milliseconds, depending on the system clock rate. Consequently, a CustomTimerDpc can be called at driver-determined variable intervals and at finer-grained intervals than an IoTimer routine.
A CustomTimerDpc routine is called once after the expiration time arrives that was specified when the driver called KeSetTimer. If the driver set the timer with KeSetTimerEx and specified a Period, the CustomTimerDpc routine is called repeatedly at the specified interval.
A driver can call KeCancelTimer to disable an already set timer object and cancel a call to its CustomTimerDpc routine, provided its call to KeCancelTimer occurs before the expiration of the most recent interval it passed to KeSetTimer or KeSetTimerEx.
For more information about managing calls to KeSetTimer, KeSetTimerEx, and KeCancelTimer, see also Section 14.2.2.