E>>Надо отдать должное реализации этих функций: если секция не захвачена другим потоком — объекты синхронизации не задействуются, все выливается только в вызовы InterlockedXXX.
ME>И можно также взглянуть на эту структуру:
ME>Каунтеры не объявлены как volatile.
ME>Конечно, защитников volatile это не убедит, т.к. они скажут, что в ms знали особенности компилятора и нужные ключи компиляции, когда они компилировали ф-ции EnterCriticalSection et al.
А что на нее глядеть? Она пользуется извне только для отладочных целей (соотв, когда никакой оптимизации и нет). Или вы думаете, что при компиляции kernel32.dll они пользуются winnt.dll из своего PSDK?
PS Вообще, знание структуры CS совсем не обязательно для ее нормального использования, точнее, оно вообще не нужно.