Here is information you need. After creating a semaphore your program calls one of the wait functions to gain access to it. When the ReleaseSemaphore() is canned another thread that is waiting will be released.
Don't PM me with questions -- you might get a nasty PM in response. If you have a question then post it in one of the forums.