どして
HANDLE mutexHandle = INVALID_HANDLE_VALUE;
WaitForSingleObject(mutexHandle, INFINITE);
ブロック?エラーメッセージは返されません。INVALID_HANDLE
ミューテックスハンドルにアクセスするにはミューテックスが必要になるため、ハンドルをチェックするのはミューテックスにとってばかげています...
ところで:WAIT_FAILED
ハンドルが閉じられた場合、それは戻ります。
どして
HANDLE mutexHandle = INVALID_HANDLE_VALUE;
WaitForSingleObject(mutexHandle, INFINITE);
ブロック?エラーメッセージは返されません。INVALID_HANDLE
ミューテックスハンドルにアクセスするにはミューテックスが必要になるため、ハンドルをチェックするのはミューテックスにとってばかげています...
ところで:WAIT_FAILED
ハンドルが閉じられた場合、それは戻ります。
http://blogs.msdn.com/oldnewthing/archive/2004/03/02/82639.aspxから:
第4に、値には特に注意する必要があり
INVALID_HANDLE_VALUE
ます。偶然にも、値INVALID_HANDLE_VALUE
は、によって返される疑似ハンドルと数値的に等しくなりGetCurrentProcess()
ます。WaitForSingleObject
多くのカーネル関数は疑似ハンドルを受け入れるため、たとえば、失敗したハンドルを台無しにして誤って呼び出した場合、INVALID_HANDLE_VALUE
実際には自分のプロセスを待つことになります。もちろん、この待機は決して完了しません。プロセスが終了すると通知されるため、自分で待機することになります。