EventWaitHandleAcl.Create Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или создает EventWaitHandle экземпляр, позволяя EventWaitHandleSecurity экземпляру при необходимости задать его во время создания события.
public:
static System::Threading::EventWaitHandle ^ Create(bool initialState, System::Threading::EventResetMode mode, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::EventWaitHandleSecurity ^ eventSecurity);
public static System.Threading.EventWaitHandle Create(bool initialState, System.Threading.EventResetMode mode, string? name, out bool createdNew, System.Security.AccessControl.EventWaitHandleSecurity? eventSecurity);
static member Create : bool * System.Threading.EventResetMode * string * bool * System.Security.AccessControl.EventWaitHandleSecurity -> System.Threading.EventWaitHandle
Public Shared Function Create (initialState As Boolean, mode As EventResetMode, name As String, ByRef createdNew As Boolean, eventSecurity As EventWaitHandleSecurity) As EventWaitHandle
Параметры
- initialState
- Boolean
true Значение , чтобы задать начальное состояние, которое сигнализирует о создании именованного события в результате этого вызова; false Чтобы задать для него значение non-signaled.
- mode
- EventResetMode
Одно из значений перечисления, определяющее, сбрасывается ли событие автоматически или вручную.
- name
- String
Имя, если объект синхронизации должен использоваться совместно с другими процессами; null в противном случае или пустая строка. Имя чувствительно к регистру. Символ обратной косой черты (\) зарезервирован и может использоваться только для указания пространства имен. Дополнительные сведения о пространствах имен см. в разделе примечаний. В зависимости от операционной системы могут быть дополнительные ограничения на имя. Например, в операционных системах на основе Unix имя после исключения пространства имен должно быть допустимым именем файла.
- createdNew
- Boolean
Если этот метод возвращается, этот аргумент всегда имеет true значение, если создается локальное событие; то есть, когда name это null или Empty. Если name имеет допустимое, непустое значение, этот аргумент имеет true значение при создании системного события или имеет false значение, если существующее системное событие найдено с таким именем.
- eventSecurity
- EventWaitHandleSecurity
Необязательный Windows безопасности управления доступом для применения.
Возвращаемое значение
Объект, представляющий дескриптор ожидания события, как запрошено.
Исключения
Значение mode перечисления было вне юридического диапазона.
–или–
только .NET Framework: name больше MAX_PATH (260 символов).
Значение mode перечисления было вне юридического диапазона. В некоторых случаях ArgumentException создается вместо этого.
name недопустим. Это может быть по разным причинам, включая некоторые ограничения, которые могут быть помещены операционной системой, например неизвестный префикс или недопустимые символы. Обратите внимание, что имя и распространенные префиксы "Global\" и "Local\" чувствительны к регистру.
–или–
Произошла другая ошибка. Свойство HResult может предоставить дополнительные сведения.
Windows только: name указало неизвестное пространство имен. Дополнительные сведения см. в разделе "Имена объектов ".
Слишком длинное значение name. Ограничения длины могут зависеть от операционной системы или конфигурации.
Не удается создать объект синхронизации с предоставленным name объектом. Объект синхронизации другого типа может иметь то же имя.
Именованное событие существует, но у пользователя нет требуемого доступа к безопасности.
только .NET Framework: длина name превышает MAX_PATH (260 символов).
Комментарии
Может name быть префиксирован или Global\Local\ указано пространство имен.
Global При указании пространства имен объект синхронизации может быть предоставлен совместно с любыми процессами в системе.
Local Если указано пространство имен, которое также является значением по умолчанию, если пространство имен не указано, объект синхронизации может быть предоставлен совместно с процессами в одном сеансе. В Windows сеанс является сеансом входа, а службы обычно выполняются в другом неинтерактивном сеансе. В операционных системах, таких как Unix, каждая оболочка имеет свой собственный сеанс. Объекты локальной синхронизации сеанса могут быть подходящими для синхронизации между процессами с отношением родительского или дочернего, где все они выполняются в одном сеансе. Дополнительные сведения о именах объектов синхронизации в Windows см. в разделе Object Names.
name Если указан объект синхронизации запрошенного типа уже существует в пространстве имен, то открывается существующий объект синхронизации. Если объект синхронизации другого типа уже существует в пространстве имен, WaitHandleCannotBeOpenedException создается исключение. В противном случае создается новый объект синхронизации.
Предостережение
По умолчанию именованное событие не ограничивается пользователем, создающим его. Другие пользователи могут открывать и использовать событие, включая вмешательство в событие, задав или сбросив его неправильно. Чтобы ограничить доступ к определенным пользователям, можно передать его EventWaitHandleSecurity при создании именованного события. Избегайте использования именованных событий без ограничений доступа в системах, которые могут иметь ненадежных пользователей, выполняющих код.