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