CreateMutex |
Declare Function Api_CreateMutex& Lib "kernel32" Alias "CreateMutexA" (ByRef lpMutexAttributes As Any, ByVal bInitialOwner&, ByVal lpName$) |
Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (ByRef lpMutexAttributes As Any, ByVal bInitialOwner As Long, ByVal lpName As String) As Long |
|
名前付きまたは名前なしのミューテックス(mutually exclusive:相互排他)オブジェクトを作成または開く。 |
|
パラメータ
る。NULL を指定すると、子プロセスはそのハンドルを継承できない。
設定する。NULL を指定すると既定のセキュリティ記述子がそのミューテックスに割り当てられる。 このパラメータで TRUE を指定し、呼び出し側がミューテックスを作成していた場合、呼び出し側スレッドはそのミューテックスオブジェクトの 所有権を取得する。FALSE を指定すると、呼び出し側スレッドはそのミューテックスの所有権を取得しない。呼び出し側がそのミューテック
スを作成したかどうかを判断する方法については、この関数の「戻り値」を参照のこと。
名前の最大の長さは、MAX_PATH 文字である。名前を比較する際に、大文字と小文字は区別される。 MUTEX_ALL_ACCESS アクセス権が必要である。この場合、bInitialOwner パラメータは、オブジェクトを作成したプロセスによって既に 設定されているため、無視される。また、lpMutexAttributes パラメータが NULL ではない場合、子プロセスがハンドルを継承できるかどう
かの指定は有効であるが、セキュリティ記述子のメンバは無視される。 名前と一致すると、この関数は失敗し、GetLastError 関数は ERROR_INVALID_HANDLE を返す。これらのオブジェクトは、同じ名前
空間を共有しているからである。
「Local\」のプレフィックスを付けることができる。名前の残りの部分は、円記号(\)を除き、任意の文字を記述できる。
視される。名前の残りの部分は、円記号(\)を除き、任意の文字を記述できる。 この関数を呼び出す以前にそのミューテックスオブジェクトが存在していた場合は、この関数は既存のオブジェクトに対するハンドルに返し、 GetLastError 関数は ERROR_ALREADY_EXISTS を返す。それ以外の場合、呼び出し側は、指定されたミューテックスを作成する。 関数が失敗すると、NULL が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。 |