2 * PROJECT: ReactOS Win32 Base API
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/win32/kernel32/synch/critical.c
5 * PURPOSE: Wrappers for the RTL Critical Section Implementation
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
9 /* INCLUDES *****************************************************************/
16 /* FUNCTIONS *****************************************************************/
23 InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection
)
27 /* Initialize the critical section and raise an exception if we failed */
28 Status
= RtlInitializeCriticalSection(
29 (PRTL_CRITICAL_SECTION
)lpCriticalSection
);
30 if (!NT_SUCCESS(Status
)) RtlRaiseStatus(Status
);
38 InitializeCriticalSectionAndSpinCount(OUT LPCRITICAL_SECTION lpCriticalSection
,
43 /* Initialize the critical section */
44 Status
= RtlInitializeCriticalSectionAndSpinCount(
45 (PRTL_CRITICAL_SECTION
)lpCriticalSection
,
47 if (!NT_SUCCESS(Status
))
49 /* Set failure code */
50 SetLastErrorByStatus(Status
);
61 BOOL WINAPI
InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection
,
67 /* FIXME: Flags ignored */
69 /* Initialize the critical section */
70 Status
= RtlInitializeCriticalSectionAndSpinCount(
71 (PRTL_CRITICAL_SECTION
)lpCriticalSection
,
73 if (!NT_SUCCESS(Status
))
75 /* Set failure code */
76 SetLastErrorByStatus(Status
);