Критические разделы не являются объектами ядра. Они не идентифицированы с какой-либо ручкой. Их можно использовать только для синхронизации потоков, принадлежащих одному и тому же процессу. Их нельзя использовать для синхронизации всего процесса.
CSingleLock (в данном контексте я предполагаю, что вы называете это замком) - это класс-оболочка, использующий концепцию RAII . Это помогает вам получить объект синхронизации потоков (в его конструкторе) и легко вызывать API блокировки и разблокировки. (скрывает все внутренние детали того, какие объекты синхронизации он использует).
CSingleLock при использовании с критическими разделами не может использоваться в процессе. Где, как Mutex может быть использован для этой цели.
Когда поток получает Mutex, и никакие другие потоки не могут получить Mutex, тогда состояние Mutex считается не подписанным.
ЕСЛИ Mutex доступен и никакие потоки не получены, то он находится в состоянии Signeled.