This function initializes a MUTEX variable. A MUTEX variable can be used for exclusive access. If a mutex is locked another lock on that mutex will wait until the first lock is removed. If there are several threads waiting for a mutex to be released a random thread will get the lock when the actually locking thread releases the mutex. In other words if there are several threads waiting for a mutex there is no guaranteed order of the threads getting the mutex lock.
Before the first use of a MUTEX variable it has to be initialized calling this function.
void thread_InitMutex(PMUTEX pMutex