为什么WaitForSingleObject会返回WAIT_FAILED

mat*_*eek 4 windows winapi mutex

MSDN说

如果函数失败,则返回值为WAIT_FAILED.要获取扩展错误信息,请调用GetLastError.

代码是:

HANDLE     m_mutex_handle;    /**< m_mutex_handle. The handle to the created mutex. */
m_mutex_handle = ::CreateMutex( 0, false, NULL );
::WaitForSingleObject( m_mutex_handle, INFINITE );
Run Code Online (Sandbox Code Playgroud)

但是可能发生的原因是什么?

180*_*ION 7

如果您缺少对象的SYNCHRONIZE特权,那么您不能等待.WAIT_FAILED将被退回.


小智 4

传入伪造的对象可能会导致这种情况。