MSDN:
A thread gets ownership of a mutex by specifying a handle to the mutex in one of the wait functions(WaitForSingleObject, etc.)
While a thread has ownership of a mutex, it can specify the same mutex in additional wait-function calls without blocking its execution. This prevents a thread from deadlocking itself while waiting for a mutex that it already owns. However, to release its ownership, the thread must call ReleaseMutex once for each time that the mutex satisfied a wait