winapi synchronization

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;