ReleaseMutex 関数 (synchapi.h)

指定したミューテックス オブジェクトの所有権を解放します。

構文

BOOL ReleaseMutex(
  [in] HANDLE hMutex
);

パラメーター

[in] hMutex

ミューテックス オブジェクトへのハンドル。 CreateMutex または

OpenMutex 関数は、このハンドルを返します。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

呼び出し元のスレッドがミューテックス オブジェクトを所有していない場合、 ReleaseMutex 関数は失敗します。

スレッドは、 bInitialOwner パラメーターを TRUE に設定してミューテックスを作成するか、 待機関数の呼び出しでそのハンドルを指定することによって、ミューテックスの所有権を取得します。 スレッドがミューテックス オブジェクトを所有する必要がなくなったら、 ReleaseMutex 関数を呼び出して、別のスレッドが所有権を取得できるようにします。

スレッドは、待機関数の 1 つの呼び出しで既に所有しているミューテックスを、その実行をブロックせずに指定できます。 これにより、既に所有しているミューテックスを待機している間にスレッド自体がデッドロックするのを防ぐことができます。 ただし、その所有権を解放するには、スレッドが所有権を取得するたびに ReleaseMutex を 1 回呼び出す必要があります ( CreateMutex または wait 関数を使用)。

ReleaseMutex を使用する例については、「ミューテックス オブジェクトの使用」を参照してください。

要件

要件
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー synchapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

CreateMutex

ミューテックス オブジェクト

同期関数