名前付きまたは無名のミューテックスオブジェクトを作成または開く。(Unicode)
CreateMutexW lpMutexAttributes, bInitialOwner, lpName
lpMutexAttributes : [var] SECURITY_ATTRIBUTES 構造体へのポインタ。NULL の場合、ハンドルは子プロセスに継承されない。 bInitialOwner : [int] TRUE でかつ呼び出し元がミューテックスを作成した場合、呼び出し元スレッドがミューテックスの初期所有権を取得する。そうでない場合は所有権を取得しない。 lpName : [wstr] ミューテックスオブジェクトの名前。名前は MAX_PATH 文字に制限され、大文字小文字を区別する。既存の名前付きミューテックスと一致した場合は MUTEX_ALL_ACCESS で既存オブジェクトを開く。NULL の場合は無名オブジェクトを作成する。"Global\" または "Local\" プレフィックスでグローバル/セッション名前空間を指定できる。
(プラグイン / モジュール : kernel32.dll)
名前付きまたは無名のミューテックスオブジェクトを作成または開く。(Unicode) [戻り値] 関数が成功した場合、戻り値は新しく作成されたミューテックスオブジェクトへのハンドル。失敗した場合は NULL。名前付きミューテックスで既存のオブジェクトがあった場合、戻り値は既存オブジェクトへのハンドルで GetLastError は ERROR_ALREADY_EXISTS を返す。 [備考] CreateMutex が返すハンドルは MUTEX_ALL_ACCESS アクセス権を持つ。単一インスタンス制限のために名前付きミューテックスを使う場合、悪意あるユーザーがミューテックスを先に作成して起動を妨害する可能性があるため、ランダム名付きミューテックスを使うか承認済みユーザーのみが取得できるようにする。ミューテックスの状態は、どのスレッドも所有していない場合にシグナル状態。所有スレッドは ReleaseMutex で所有権を解放する。同一ミューテックスを複数回待機した場合、取得した回数分 ReleaseMutex を呼ぶ必要がある。 (以下省略)
| プラグイン / モジュール | kernel32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |