By default, a CRITICAL_SECTION object is recursive. Can this behaviour be configured like a pthread mutex to enable or disable recursive thread access?
To clarify in
No, it cannot. Documented APIs do not mention this in any way. Windows critical sections always accept recursive access.
A Critical Section always allows recursion within a thread. So does a Mutex. That is by design and cannot be changed.
A Semaphore, on the other hand, can prevent recursion within a thread. See MSDN documentation for more details.