Alex Ionescu wrote:
hbirr@svn.reactos.com wrote:
- Fixed ExTimerRundown.
Hi,
Can you please explain some of your changes? You have introduced several changes that I don't understand, such as cancelling the timer's APC without actually making sure that it has an APC associated, as well as slowing down the path and forcing additionnal locking of the DB lock by using KeCancelTimer (which also uselessly checks if the timer is inserted -- we are sure it already is).
Hi,
the thread's active timer list can only contain timers which have an apc associated. It isn't necessary to check for an apc. There exist a little gap between deliver the apc and calling the apc routine which can removes the timer itself from the list. In this case the timers apc and dpc aren't on the apc and dpc list and some of the called functions do nothing (KeRemoveQueueDpc, KeRemoveQueueApc, KeCancelTimer). The goal for my changes was get the apc2 sample working again.
- Hartmut