[KERNEL32_VISTA] Export InitializeCriticalSectionEx.
[reactos.git] / dll / win32 / kernel32_vista / sync.c
index a13f984..17d3949 100644 (file)
@@ -148,3 +148,31 @@ WakeConditionVariable(PCONDITION_VARIABLE ConditionVariable)
 {
     RtlWakeConditionVariable((PRTL_CONDITION_VARIABLE)ConditionVariable);
 }
+
+
+/*
+* @implemented
+*/
+BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection,
+                                        IN DWORD dwSpinCount,
+                                        IN DWORD flags)
+{
+    NTSTATUS Status;
+
+    /* FIXME: Flags ignored */
+
+    /* Initialize the critical section */
+    Status = RtlInitializeCriticalSectionAndSpinCount(
+        (PRTL_CRITICAL_SECTION)lpCriticalSection,
+        dwSpinCount);
+    if (!NT_SUCCESS(Status))
+    {
+        /* Set failure code */
+        SetLastError(RtlNtStatusToDosError(Status));
+        return FALSE;
+    }
+
+    /* Success */
+    return TRUE;
+}
+