HANDLE CreateSemaphore (LPSECURITY_ATTRIBUTE lpsa, LONG cSemInitial, LONG cSemMax, LPTSTR lpszSemName); HANDLE OpenSemaphore (DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName); DWORD WaitForSingleObject ( HANDLE hHandle, DWORD dwMilliseconds); BOOL ReleaseSemaphore (HANDLE hSemaphore, LONG cRelease, LPLONG lplPrevious);