winapi - ¿Qué contiene Win32 CRITICAL_SECTION?
synchronization (3)
¿Qué datos contiene Win32 CRITICAL_SECTION y qué tan grande es?
Esto es indocumentado y presumiblemente específico de la implementación, pero tengo curiosidad por saber
¿Por qué no revisas los archivos de encabezados?
Mira WINNT.H
y mira lo que encontrarás :)
(suponiendo que tiene archivos de Windows C ++)
Usualmente la estructura contiene:
LONG LockCount;
LONG RecursionCount;
HANDLE OwningThread;
HANDLE LockSemaphore;
DWORD SpinCount;
Editar: un comando como sizeof(CRITICAL_SECTION)
revelará el tamaño.
Esto es de mi instalación de Windows Vista SDK:
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;
WinBase.h:
typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
Aquí puede encontrar una descripción detallada de la estructura CRITICAL_SECTION
en este artículo de MSDN Magazine:
Liberarse de bloqueos de código en secciones críticas en Windows
Actualización: el enlace de arriba ya no funciona. Aquí hay un enlace de Archive.org que hace actualmente.