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
);
62 BOOL WINAPI
InitializeCriticalSectionEx( CRITICAL_SECTION
*crit
, DWORD spincount
, DWORD flags
)
64 NTSTATUS ret
= RtlInitializeCriticalSectionEx( crit
, spincount
, flags
);
65 if (ret
) RtlRaiseStatus( ret
);