This MR addresses two issues: 1. the MR presentation clock's periodic callback continuing to be called after it was shutdown; and 2. a deadlock that could occur when calling GetCorrelatedTime in parallel with a session shutdown The deadlock occurs when SAR is the time source. A call to GetCorrelatedTime will result in an attempt to acquire SAR's critical section. This means this thread will hold the presentation clock critical section and then attempt to obtain SARs critical section. However, if SAR is in the process of shutdown in a parallel thread, then that thread will already hold the SAR critical section and call IMFPresentationClock::RemoveClockStateSink. This will attempt to acquire the presentation clock critical section. In other words, we have two threads trying to acquire the same two critical sections in the opposite order. The result is both threads waiting on the other and thus a deadlock. This commit resolves the deadlock by ensuring the presentation clock does not hold its own critical section when calling GetCorrelatedTime. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10715