Собственно, в Windows объект CRITICAL_SECTION существует только в User-mode. В большинстве случаев вызовы EnterCriticalSection() и LeaveCriticalSection() не приводят к вызову ядра (которое происходит всегда при вызове ф-ий WaitFor* ). Собственно, критическая секция в WinAPI создавалась для ускорения синхронизации в пределах одного процесса.