Поделиться через


Функция OpenEventA (synchapi.h)

Открывает существующий именованный объект события.

Синтаксис

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

Параметры

[in] dwDesiredAccess

Доступ к объекту события. Функция завершается ошибкой, если дескриптор безопасности указанного объекта не разрешает запрошенный доступ для вызывающего процесса. Список прав доступа см. в разделе Synchronization Object Security and Access Rights.

[in] bInheritHandle

Если это значение равно TRUE, процессы, созданные этим процессом, наследуют дескриптор. В противном случае процессы не наследуют этот дескриптор.

[in] lpName

Имя открываемого события. При сравнении имен учитывается регистр.

Эта функция может открывать объекты в частном пространстве имен. Дополнительные сведения см. в разделе Пространства имен объектов.

Службы терминалов: Имя может иметь префикс "Global" или "Local" для явного открытия объекта в глобальном пространстве имен или пространстве имен сеанса. Оставшаяся часть имени может содержать любой символ, кроме символа обратной косой черты (\). Дополнительные сведения см. в разделе Пространства имен объектов ядра.

Примечание Быстрое переключение пользователей реализуется с помощью сеансов служб терминалов. Первый пользователь, в который выполняется вход, использует сеанс 0, следующий пользователь для входа использует сеанс 1 и т. д. Имена объектов ядра должны соответствовать рекомендациям, описанным для служб терминалов, чтобы приложения могли поддерживать нескольких пользователей.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение является дескриптором для объекта события.

Если функция завершается сбоем, возвращается значение NULL. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Функция OpenEvent позволяет нескольким процессам открывать дескрипторы одного объекта события. Функция выполняется успешно, только если какой-то процесс уже создал событие с помощью функции CreateEvent . Вызывающий процесс может использовать возвращенный дескриптор в любой функции, требующей дескриптора объекта события, с учетом ограничений доступа, указанных в параметре dwDesiredAccess .

Дескриптор можно дублировать с помощью функции DuplicateHandle . Используйте функцию CloseHandle , чтобы закрыть дескриптор. Система автоматически закрывает дескриптор при завершении процесса. Объект события уничтожается при закрытии последнего дескриптора.

Примечание

Заголовок synchapi.h определяет OpenEvent в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header synchapi.h (включает Windows.h в Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CloseHandle

CreateEvent

CreateProcess

DuplicateHandle

Объекты событий

Имена объектов

PulseEvent

ResetEvent

SetEvent

Функции синхронизации