[KERNEL32_VISTA] Export InitializeCriticalSectionEx.

This commit is contained in:
Mark Jansen 2018-04-08 11:09:54 +02:00
parent ac620c2e8e
commit 5aefc6f49a
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B
6 changed files with 34 additions and 3 deletions

View file

@ -18,7 +18,7 @@
@ stdcall EnterCriticalSection() kernel32.EnterCriticalSection
@ stdcall InitializeCriticalSection() kernel32.InitializeCriticalSection
@ stdcall InitializeCriticalSectionAndSpinCount() kernel32.InitializeCriticalSectionAndSpinCount
@ stub InitializeCriticalSectionEx
@ stdcall InitializeCriticalSectionEx() kernel32_vista.InitializeCriticalSectionEx
@ stdcall InitializeSRWLock() kernel32_vista.InitializeSRWLock
@ stdcall LeaveCriticalSection() kernel32.LeaveCriticalSection
@ stdcall OpenEventA() kernel32.OpenEventA

View file

@ -25,7 +25,7 @@
@ stdcall InitializeConditionVariable() kernel32_vista.InitializeConditionVariable
@ stdcall InitializeCriticalSection() kernel32.InitializeCriticalSection
@ stdcall InitializeCriticalSectionAndSpinCount() kernel32.InitializeCriticalSectionAndSpinCount
@ stub InitializeCriticalSectionEx
@ stdcall InitializeCriticalSectionEx() kernel32_vista.InitializeCriticalSectionEx
@ stdcall InitializeSRWLock() kernel32_vista.InitializeSRWLock
@ stub InitializeSynchronizationBarrier
@ stdcall LeaveCriticalSection() kernel32.LeaveCriticalSection

View file

@ -23,7 +23,7 @@
@ stdcall InitializeConditionVariable() kernel32_vista.InitializeConditionVariable
@ stdcall InitializeCriticalSection() kernel32.InitializeCriticalSection
@ stdcall InitializeCriticalSectionAndSpinCount() kernel32.InitializeCriticalSectionAndSpinCount
@ stub InitializeCriticalSectionEx
@ stdcall InitializeCriticalSectionEx() kernel32_vista.InitializeCriticalSectionEx
@ stdcall InitializeSRWLock() kernel32_vista.InitializeSRWLock
@ stub InitializeSynchronizationBarrier
@ stub InitOnceBeginInitialize

View file

@ -8,4 +8,5 @@
#include <ndk/kefuncs.h>
#include <ndk/psfuncs.h>
#include <ndk/rtlfuncs.h>

View file

@ -14,3 +14,5 @@
@ stdcall SleepConditionVariableSRW(ptr ptr long long)
@ stdcall WakeAllConditionVariable(ptr)
@ stdcall WakeConditionVariable(ptr)
@ stdcall InitializeCriticalSectionEx(ptr long long)

View 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;
}