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
))
31 RtlRaiseStatus(Status
);
39 InitializeCriticalSectionAndSpinCount(OUT LPCRITICAL_SECTION lpCriticalSection
,
44 /* Initialize the critical section */
45 Status
= RtlInitializeCriticalSectionAndSpinCount(
46 (PRTL_CRITICAL_SECTION
)lpCriticalSection
,
48 if (!NT_SUCCESS(Status
))
50 /* Set failure code */
51 SetLastErrorByStatus(Status
);