OpenEventA 函数 (synchapi.h)

打开现有的命名事件对象。

语法

HANDLE OpenEventA(
  [in] DWORD  dwDesiredAccess,
  [in] BOOL   bInheritHandle,
  [in] LPCSTR lpName
);

参数

[in] dwDesiredAccess

对事件对象的访问。 如果指定对象的安全描述符不允许对调用进程进行请求的访问,则函数将失败。 有关访问权限的列表,请参阅 同步对象安全性和访问权限

[in] bInheritHandle

如果此值为 TRUE,则此进程创建的进程将继承句柄。 否则,进程不会继承此句柄。

[in] lpName

要打开的事件的名称。 名称比较区分大小写。

此函数可以在专用命名空间中打开对象。 有关详细信息,请参阅 对象命名空间

终端服务: 名称可以具有“Global”或“Local”前缀,以显式打开全局命名空间或会话命名空间中的对象。 名称的其余部分可以包含除反斜杠字符 (\) 以外的任何字符。 有关详细信息,请参阅 内核对象命名空间

注意 使用终端服务会话实现快速用户切换。 第一个登录用户使用会话 0,下一个登录用户使用会话 1,依此。 内核对象名称必须遵循终端服务概述的准则,以便应用程序可以支持多个用户。

返回值

如果函数成功,则返回值是事件对象的句柄。

如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。

注解

OpenEvent 函数使多个进程能够打开同一事件对象的句柄。 仅当某个进程已使用 CreateEvent 函数创建事件时,函数才会成功。 调用进程可以在需要事件对象句柄的任何函数中使用返回的句柄,但受 dwDesiredAccess 参数中指定的访问限制的限制。

可以使用 DuplicateHandle 函数复制句柄。 使用 CloseHandle 函数关闭句柄。 进程终止时,系统会自动关闭句柄。 事件对象在关闭其最后一个句柄时被销毁。

注意

synchapi.h 标头将 OpenEvent 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 synchapi.h (包括 Windows Server 2003 上的 Windows.h、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CloseHandle

CreateEvent

CreateProcess

DuplicateHandle

事件对象

对象名称

PulseEvent

ResetEvent

SetEvent

同步函数