OpenSemaphore

【勇芳软件工作室】汉化HomePreviousNext

OpenSemaphore函数返回一个现有的命名信号量对象的句柄。

手柄OpenSemaphore(

DWORD 【dwDesiredAccess】,//访问标志
BOOL 【bInheritHandle】,//继承标志
LPCTSTR 【lpName】//指向信号量对象名称的指针
); 

参数

【dwDesiredAccess】

指定对信号量对象的请求访问。对于支持对象安全性的系统,如果指定对象的安全描述符不允许调用进程的请求访问,则该函数将失败。

此参数可以是以下值的任意组合:

访问描述
SEMAPHORE_ALL_ACCESS指定信号量对象的所有可能的访问标志。
SEMAPHORE_MODIFY_STATE使用ReleaseSemaphore函数中的信号量句柄来修改信号量的计数。
SYNCHRONIZE仅Windows NT:启用在任何等待功能中使用信号量句柄等待信号量状态的信号。

【bInheritHandle】

指定返回的句柄是否可继承。如果为TRUE,则CreateProcess函数创建的进程可以继承该句柄;否则,句柄不能被继承。

【lpName】

指向以空字符结尾的字符串,命名要打开的信号量。名称比较区分大小写。

返回值

如果函数成功,则返回值是信号量对象的句柄。

如果函数失败,返回值为NULL。要获取扩展错误信息,请调用GetLastError.

备注

OpenSemaphore功能允许多个进程打开相同信号量对象的句柄。只有某些进程已经使用CreateSemaphore函数创建了信号量,该函数才会成功。调用进程可以使用任何需要信号量对象的句柄的函数(如等待功能)的返回句柄,但必须遵守【dwDesiredAccess】参数中指定的访问限制。

可以使用DuplicateHandle功能复制句柄。使用CloseHandle功能关闭句柄。当过程终止时,系统自动关闭句柄。信号量对象在其最后一个句柄被关闭时被销毁。

也可以看看

CloseHandle, CreateSemaphore, DuplicateHandle, ReleaseSemaphore