CreateSemaphore |
Declare Function Api_CreateSemaphore& Lib "kernel32" Alias "CreateSemaphoreA" (lpSemaphoreAttributes As SECURITY_ATTRIBUTES, ByVal lInitialCount&, ByVal lMaximumCount&, ByVal lpName$) |
Declare Function CreateSemaphore Lib "kernel32" Alias "CreateSemaphoreA" (lpSemaphoreAttributes As SECURITY_ATTRIBUTES, ByVal lInitialCount As Long, ByVal lMaximumCount As Long, ByVal lpName As String) As Long |
|
名前付きまたは名前なしのセマフォオブジェクトを作成または開く。 |
|
パラメータ
スはそのハンドルを継承できない。
する。NULL を指定すると、既定のセキュリティ記述子がそのセマフォに割り当てられる。 合はシグナル状態になり、カウントが 0 の場合は非シグナル状態になる。待機関数(WaitForSingleObject 関数など)を使って、そのセマフ
ォを待っていたスレッドを解放すると、カウントが 1 つ減る。ReleaseSemaphore 関数を使うと、任意の数だけ増やすことができる。
ある。名前を比較する際に、大文字と小文字は区別される。 に対する SEMAPHORE_ALL_ACCESS アクセス権が必要である。この場合、lInitialCount パラメータと lMaximumCount パラメータ は、オブジェクトを作成したプロセスによって既に設定されているため、無視される。また、lpSemaphoreAttributes パラメータが NULL で
はない場合、子プロセスがハンドルを継承できるかどうかの指定は有効であるが、セキュリティ記述子のメンバは無視される。 かの名前と一致すると、この関数は失敗し、 関数は ERROR_INVALID_HANDLE を返す。これらのオブジェクトは、同じ名前空間を共
有しているからである。
「Local\」のプレフィックスを付けることができる。名前の残りの部分は、円記号(\)を除き、任意の文字を記述できる。
視される。名前の残りの部分は、円記号(\)を除き、任意の文字を記述できる。
ドルが返る。その場合、 関数は、ERROR_ALREADY_EXISTS を返す。 マフォオブジェクトのハンドルを要求する任意の関数で使うことができる。 |