Мне нужно в секции catch(..){} определить, владеет ли данный поток в данной критической секции или нет. Можно, конечно лишний раз вызвать функцию LeaveCriticalSection, но в документации на эту функцию написано:
If a thread calls LeaveCriticalSection when it does not have ownership of the specified critical section object, an error occurs that may cause another thread using EnterCriticalSection to wait indefinitely.
Из чего я понял, что если будет вызвана данная функция, когда данный поток не владеет критической секции, то вызов функции EnterCriticalSection может заблокировать поток, что крайне не желательно