### synchapi.h ###

AcquireSRWLockExclusive=func
func.AcquireSRWLockExclusive.args=1
func.AcquireSRWLockExclusive.arg.0=PSRWLOCK,SRWLock
func.AcquireSRWLockExclusive.ret=VOID

AcquireSRWLockShared=func
func.AcquireSRWLockShared.args=1
func.AcquireSRWLockShared.arg.0=PSRWLOCK,SRWLock
func.AcquireSRWLockShared.ret=VOID

CancelWaitableTimer=func
func.CancelWaitableTimer.args=1
func.CancelWaitableTimer.arg.0=HANDLE,hTimer
func.CancelWaitableTimer.ret=BOOL

CreateEventA=func
func.CreateEventA.args=4
func.CreateEventA.arg.0=LPSECURITY_ATTRIBUTES,lpEventAttributes
func.CreateEventA.arg.1=BOOL,bManualReset
func.CreateEventA.arg.2=BOOL,bInitialState
func.CreateEventA.arg.3=LPCSTR,lpName
func.CreateEventA.ret=HANDLE

CreateEventExA=func
func.CreateEventExA.args=4
func.CreateEventExA.arg.0=LPSECURITY_ATTRIBUTES,lpEventAttributes
func.CreateEventExA.arg.1=LPCSTR,lpName
func.CreateEventExA.arg.2=DWORD,dwFlags
func.CreateEventExA.arg.3=DWORD,dwDesiredAccess
func.CreateEventExA.ret=HANDLE

CreateEventExW=func
func.CreateEventExW.args=4
func.CreateEventExW.arg.0=LPSECURITY_ATTRIBUTES,lpEventAttributes
func.CreateEventExW.arg.1=LPCWSTR,lpName
func.CreateEventExW.arg.2=DWORD,dwFlags
func.CreateEventExW.arg.3=DWORD,dwDesiredAccess
func.CreateEventExW.ret=HANDLE

CreateEventW=func
func.CreateEventW.args=4
func.CreateEventW.arg.0=LPSECURITY_ATTRIBUTES,lpEventAttributes
func.CreateEventW.arg.1=BOOL,bManualReset
func.CreateEventW.arg.2=BOOL,bInitialState
func.CreateEventW.arg.3=LPCWSTR,lpName
func.CreateEventW.ret=HANDLE

CreateMutexA=func
func.CreateMutexA.args=3
func.CreateMutexA.arg.0=LPSECURITY_ATTRIBUTES,lpMutexAttributes
func.CreateMutexA.arg.1=BOOL,bInitialOwner
func.CreateMutexA.arg.2=LPCSTR,lpName
func.CreateMutexA.ret=HANDLE

CreateMutexExA=func
func.CreateMutexExA.args=4
func.CreateMutexExA.arg.0=LPSECURITY_ATTRIBUTES,lpMutexAttributes
func.CreateMutexExA.arg.1=LPCSTR,lpName
func.CreateMutexExA.arg.2=DWORD,dwFlags
func.CreateMutexExA.arg.3=DWORD,dwDesiredAccess
func.CreateMutexExA.ret=HANDLE

CreateMutexExW=func
func.CreateMutexExW.args=4
func.CreateMutexExW.arg.0=LPSECURITY_ATTRIBUTES,lpMutexAttributes
func.CreateMutexExW.arg.1=LPCWSTR,lpName
func.CreateMutexExW.arg.2=DWORD,dwFlags
func.CreateMutexExW.arg.3=DWORD,dwDesiredAccess
func.CreateMutexExW.ret=HANDLE

CreateMutexW=func
func.CreateMutexW.args=3
func.CreateMutexW.arg.0=LPSECURITY_ATTRIBUTES,lpMutexAttributes
func.CreateMutexW.arg.1=BOOL,bInitialOwner
func.CreateMutexW.arg.2=LPCWSTR,lpName
func.CreateMutexW.ret=HANDLE

CreateSemaphoreExW=func
func.CreateSemaphoreExW.args=6
func.CreateSemaphoreExW.arg.0=LPSECURITY_ATTRIBUTES,lpSemaphoreAttributes
func.CreateSemaphoreExW.arg.1=LONG,lInitialCount
func.CreateSemaphoreExW.arg.2=LONG,lMaximumCount
func.CreateSemaphoreExW.arg.3=LPCWSTR,lpName
func.CreateSemaphoreExW.arg.4=DWORD,dwFlags
func.CreateSemaphoreExW.arg.5=DWORD,dwDesiredAccess
func.CreateSemaphoreExW.ret=HANDLE

CreateSemaphoreW=func
func.CreateSemaphoreW.args=4
func.CreateSemaphoreW.arg.0=LPSECURITY_ATTRIBUTES,lpSemaphoreAttributes
func.CreateSemaphoreW.arg.1=LONG,lInitialCount
func.CreateSemaphoreW.arg.2=LONG,lMaximumCount
func.CreateSemaphoreW.arg.3=LPCWSTR,lpName
func.CreateSemaphoreW.ret=HANDLE

CreateWaitableTimerExW=func
func.CreateWaitableTimerExW.args=4
func.CreateWaitableTimerExW.arg.0=LPSECURITY_ATTRIBUTES,lpTimerAttributes
func.CreateWaitableTimerExW.arg.1=LPCWSTR,lpTimerName
func.CreateWaitableTimerExW.arg.2=DWORD,dwFlags
func.CreateWaitableTimerExW.arg.3=DWORD,dwDesiredAccess
func.CreateWaitableTimerExW.ret=HANDLE

CreateWaitableTimerW=func
func.CreateWaitableTimerW.args=3
func.CreateWaitableTimerW.arg.0=LPSECURITY_ATTRIBUTES,lpTimerAttributes
func.CreateWaitableTimerW.arg.1=BOOL,bManualReset
func.CreateWaitableTimerW.arg.2=LPCWSTR,lpTimerName
func.CreateWaitableTimerW.ret=HANDLE

DeleteCriticalSection=func
func.DeleteCriticalSection.args=1
func.DeleteCriticalSection.arg.0=LPCRITICAL_SECTION,lpCriticalSection
func.DeleteCriticalSection.ret=VOID

EnterCriticalSection=func
func.EnterCriticalSection.args=1
func.EnterCriticalSection.arg.0=LPCRITICAL_SECTION,lpCriticalSection
func.EnterCriticalSection.ret=VOID

InitOnceBeginInitialize=func
func.InitOnceBeginInitialize.args=4
func.InitOnceBeginInitialize.arg.0=LPINIT_ONCE,lpInitOnce
func.InitOnceBeginInitialize.arg.1=DWORD,dwFlags
func.InitOnceBeginInitialize.arg.2=PBOOL,fPending
func.InitOnceBeginInitialize.arg.3=LPVOID *,lpContext
func.InitOnceBeginInitialize.ret=BOOL

InitOnceComplete=func
func.InitOnceComplete.args=3
func.InitOnceComplete.arg.0=LPINIT_ONCE,lpInitOnce
func.InitOnceComplete.arg.1=DWORD,dwFlags
func.InitOnceComplete.arg.2=LPVOID,lpContext
func.InitOnceComplete.ret=BOOL

InitOnceExecuteOnce=func
func.InitOnceExecuteOnce.args=4
func.InitOnceExecuteOnce.arg.0=PINIT_ONCE,InitOnce
func.InitOnceExecuteOnce.arg.1=PINIT_ONCE_FN,InitFn
func.InitOnceExecuteOnce.arg.2=PVOID,Parameter
func.InitOnceExecuteOnce.arg.3=LPVOID *,Context
func.InitOnceExecuteOnce.ret=BOOL

InitOnceInitialize=func
func.InitOnceInitialize.args=1
func.InitOnceInitialize.arg.0=PINIT_ONCE,InitOnce
func.InitOnceInitialize.ret=VOID

InitializeConditionVariable=func
func.InitializeConditionVariable.args=1
func.InitializeConditionVariable.arg.0=PCONDITION_VARIABLE,ConditionVariable
func.InitializeConditionVariable.ret=VOID

InitializeCriticalSection=func
func.InitializeCriticalSection.args=1
func.InitializeCriticalSection.arg.0=LPCRITICAL_SECTION,lpCriticalSection
func.InitializeCriticalSection.ret=VOID

InitializeCriticalSectionAndSpinCount=func
func.InitializeCriticalSectionAndSpinCount.args=2
func.InitializeCriticalSectionAndSpinCount.arg.0=LPCRITICAL_SECTION,lpCriticalSection
func.InitializeCriticalSectionAndSpinCount.arg.1=DWORD,dwSpinCount
func.InitializeCriticalSectionAndSpinCount.ret=BOOL

InitializeCriticalSectionEx=func
func.InitializeCriticalSectionEx.args=3
func.InitializeCriticalSectionEx.arg.0=LPCRITICAL_SECTION,lpCriticalSection
func.InitializeCriticalSectionEx.arg.1=DWORD,dwSpinCount
func.InitializeCriticalSectionEx.arg.2=DWORD,Flags
func.InitializeCriticalSectionEx.ret=BOOL

InitializeSRWLock=func
func.InitializeSRWLock.args=1
func.InitializeSRWLock.arg.0=PSRWLOCK,SRWLock
func.InitializeSRWLock.ret=VOID

LeaveCriticalSection=func
func.LeaveCriticalSection.args=1
func.LeaveCriticalSection.arg.0=LPCRITICAL_SECTION,lpCriticalSection
func.LeaveCriticalSection.ret=VOID

OpenEventA=func
func.OpenEventA.args=3
func.OpenEventA.arg.0=DWORD,dwDesiredAccess
func.OpenEventA.arg.1=BOOL,bInheritHandle
func.OpenEventA.arg.2=LPCSTR,lpName
func.OpenEventA.ret=HANDLE

OpenEventW=func
func.OpenEventW.args=3
func.OpenEventW.arg.0=DWORD,dwDesiredAccess
func.OpenEventW.arg.1=BOOL,bInheritHandle
func.OpenEventW.arg.2=LPCWSTR,lpName
func.OpenEventW.ret=HANDLE

OpenMutexW=func
func.OpenMutexW.args=3
func.OpenMutexW.arg.0=DWORD,dwDesiredAccess
func.OpenMutexW.arg.1=BOOL,bInheritHandle
func.OpenMutexW.arg.2=LPCWSTR,lpName
func.OpenMutexW.ret=HANDLE

OpenSemaphoreW=func
func.OpenSemaphoreW.args=3
func.OpenSemaphoreW.arg.0=DWORD,dwDesiredAccess
func.OpenSemaphoreW.arg.1=BOOL,bInheritHandle
func.OpenSemaphoreW.arg.2=LPCWSTR,lpName
func.OpenSemaphoreW.ret=HANDLE

OpenWaitableTimerW=func
func.OpenWaitableTimerW.args=3
func.OpenWaitableTimerW.arg.0=DWORD,dwDesiredAccess
func.OpenWaitableTimerW.arg.1=BOOL,bInheritHandle
func.OpenWaitableTimerW.arg.2=LPCWSTR,lpTimerName
func.OpenWaitableTimerW.ret=HANDLE

ReleaseMutex=func
func.ReleaseMutex.args=1
func.ReleaseMutex.arg.0=HANDLE,hMutex
func.ReleaseMutex.ret=BOOL

ReleaseSRWLockExclusive=func
func.ReleaseSRWLockExclusive.args=1
func.ReleaseSRWLockExclusive.arg.0=PSRWLOCK,SRWLock
func.ReleaseSRWLockExclusive.ret=VOID

ReleaseSRWLockShared=func
func.ReleaseSRWLockShared.args=1
func.ReleaseSRWLockShared.arg.0=PSRWLOCK,SRWLock
func.ReleaseSRWLockShared.ret=VOID

ReleaseSemaphore=func
func.ReleaseSemaphore.args=3
func.ReleaseSemaphore.arg.0=HANDLE,hSemaphore
func.ReleaseSemaphore.arg.1=LONG,lReleaseCount
func.ReleaseSemaphore.arg.2=LPLONG,lpPreviousCount
func.ReleaseSemaphore.ret=BOOL

ResetEvent=func
func.ResetEvent.args=1
func.ResetEvent.arg.0=HANDLE,hEvent
func.ResetEvent.ret=BOOL

SetCriticalSectionSpinCount=func
func.SetCriticalSectionSpinCount.args=2
func.SetCriticalSectionSpinCount.arg.0=LPCRITICAL_SECTION,lpCriticalSection
func.SetCriticalSectionSpinCount.arg.1=DWORD,dwSpinCount
func.SetCriticalSectionSpinCount.ret=DWORD

SetEvent=func
func.SetEvent.args=1
func.SetEvent.arg.0=HANDLE,hEvent
func.SetEvent.ret=BOOL

SetWaitableTimer=func
func.SetWaitableTimer.args=6
func.SetWaitableTimer.arg.0=HANDLE,hTimer
func.SetWaitableTimer.arg.1=const LARGE_INTEGER *,lpDueTime
func.SetWaitableTimer.arg.2=LONG,lPeriod
func.SetWaitableTimer.arg.3=PTIMERAPCROUTINE,pfnCompletionRoutine
func.SetWaitableTimer.arg.4=LPVOID,lpArgToCompletionRoutine
func.SetWaitableTimer.arg.5=BOOL,fResume
func.SetWaitableTimer.ret=BOOL

SignalObjectAndWait=func
func.SignalObjectAndWait.args=4
func.SignalObjectAndWait.arg.0=HANDLE,hObjectToSignal
func.SignalObjectAndWait.arg.1=HANDLE,hObjectToWaitOn
func.SignalObjectAndWait.arg.2=DWORD,dwMilliseconds
func.SignalObjectAndWait.arg.3=BOOL,bAlertable
func.SignalObjectAndWait.ret=DWORD

Sleep=func
func.Sleep.args=1
func.Sleep.arg.0=DWORD,dwMilliseconds
func.Sleep.ret=VOID

SleepConditionVariableCS=func
func.SleepConditionVariableCS.args=3
func.SleepConditionVariableCS.arg.0=PCONDITION_VARIABLE,ConditionVariable
func.SleepConditionVariableCS.arg.1=PCRITICAL_SECTION,CriticalSection
func.SleepConditionVariableCS.arg.2=DWORD,dwMilliseconds
func.SleepConditionVariableCS.ret=BOOL

SleepConditionVariableSRW=func
func.SleepConditionVariableSRW.args=4
func.SleepConditionVariableSRW.arg.0=PCONDITION_VARIABLE,ConditionVariable
func.SleepConditionVariableSRW.arg.1=PSRWLOCK,SRWLock
func.SleepConditionVariableSRW.arg.2=DWORD,dwMilliseconds
func.SleepConditionVariableSRW.arg.3=ULONG,Flags
func.SleepConditionVariableSRW.ret=BOOL

SleepEx=func
func.SleepEx.args=2
func.SleepEx.arg.0=DWORD,dwMilliseconds
func.SleepEx.arg.1=BOOL,bAlertable
func.SleepEx.ret=DWORD

TryAcquireSRWLockExclusive=func
func.TryAcquireSRWLockExclusive.args=1
func.TryAcquireSRWLockExclusive.arg.0=PSRWLOCK,SRWLock
func.TryAcquireSRWLockExclusive.ret=BOOLEAN

TryAcquireSRWLockShared=func
func.TryAcquireSRWLockShared.args=1
func.TryAcquireSRWLockShared.arg.0=PSRWLOCK,SRWLock
func.TryAcquireSRWLockShared.ret=BOOLEAN

TryEnterCriticalSection=func
func.TryEnterCriticalSection.args=1
func.TryEnterCriticalSection.arg.0=LPCRITICAL_SECTION,lpCriticalSection
func.TryEnterCriticalSection.ret=BOOL

WaitForMultipleObjects=func
func.WaitForMultipleObjects.args=4
func.WaitForMultipleObjects.arg.0=DWORD,nCount
func.WaitForMultipleObjects.arg.1=const HANDLE *,lpHandles
func.WaitForMultipleObjects.arg.2=BOOL,bWaitAll
func.WaitForMultipleObjects.arg.3=DWORD,dwMilliseconds
func.WaitForMultipleObjects.ret=DWORD

WaitForMultipleObjectsEx=func
func.WaitForMultipleObjectsEx.args=5
func.WaitForMultipleObjectsEx.arg.0=DWORD,nCount
func.WaitForMultipleObjectsEx.arg.1=const HANDLE *,lpHandles
func.WaitForMultipleObjectsEx.arg.2=BOOL,bWaitAll
func.WaitForMultipleObjectsEx.arg.3=DWORD,dwMilliseconds
func.WaitForMultipleObjectsEx.arg.4=BOOL,bAlertable
func.WaitForMultipleObjectsEx.ret=DWORD

WaitForSingleObject=func
func.WaitForSingleObject.args=2
func.WaitForSingleObject.arg.0=HANDLE,hHandle
func.WaitForSingleObject.arg.1=DWORD,dwMilliseconds
func.WaitForSingleObject.ret=DWORD

WaitForSingleObjectEx=func
func.WaitForSingleObjectEx.args=3
func.WaitForSingleObjectEx.arg.0=HANDLE,hHandle
func.WaitForSingleObjectEx.arg.1=DWORD,dwMilliseconds
func.WaitForSingleObjectEx.arg.2=BOOL,bAlertable
func.WaitForSingleObjectEx.ret=DWORD

WakeAllConditionVariable=func
func.WakeAllConditionVariable.args=1
func.WakeAllConditionVariable.arg.0=PCONDITION_VARIABLE,ConditionVariable
func.WakeAllConditionVariable.ret=VOID

WakeConditionVariable=func
func.WakeConditionVariable.args=1
func.WakeConditionVariable.arg.0=PCONDITION_VARIABLE,ConditionVariable
func.WakeConditionVariable.ret=VOID
