Быстрый поиск по заголовкам показывает, что структура определена в winnt.h
, и это определение явно указывает на то, что копирование структуры не будет работать.
typedef struct _RTL_CRITICAL_SECTION {
PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
//
// The following three fields control entering and exiting the critical
// section for the resource
//
LONG LockCount;
LONG RecursionCount;
HANDLE OwningThread; // from the thread's ClientId->UniqueThread
HANDLE LockSemaphore;
ULONG_PTR SpinCount; // force size on 64-bit systems when packed
} RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION;
Тем не менее, у меня естьПонятия не имею, почему эти внутренние счетчики хранятся в структуре пространства пользователя, т.е. что произойдет, если программа их модифицирует?