MutexAcl.Create(Boolean, String, Boolean, MutexSecurity) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub tworzy Mutex wystąpienie, co pozwala MutexSecurity na opcjonalne ustawienie go podczas tworzenia mutex.
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
Parametry
- initiallyOwned
- Boolean
true
w celu nadania początkowej własności wątku wywołującego nazwanego mutexu systemowego, jeśli nazwany mutex systemu jest tworzony w wyniku tego wywołania; w przeciwnym razie , false
.
- name
- String
Nazwa, jeśli obiekt synchronizacji ma być współużytkowany z innymi procesami; null
w przeciwnym razie lub pusty ciąg. W nazwie jest rozróżniana wielkość liter. Znak ukośnika odwrotnego (\) jest zarezerwowany i może być używany tylko do określania przestrzeni nazw. Aby uzyskać więcej informacji na temat przestrzeni nazw, zobacz sekcję uwagi. W zależności od systemu operacyjnego mogą istnieć dalsze ograniczenia dotyczące nazwy. Na przykład w systemach operacyjnych opartych na systemie Unix nazwa po wyłączeniu przestrzeni nazw musi być prawidłową nazwą pliku.
- createdNew
- Boolean
Gdy ta metoda zwraca wartość , ten argument jest zawsze ustawiany na true
wartość , jeśli tworzony jest lokalny mutex, czyli wtedy, gdy name
jest lub null
Empty. Jeśli name
ma prawidłową niepustą wartość, ten argument jest ustawiany na true
czas tworzenia mutexu systemowego lub jest ustawiany na false
wartość , jeśli istniejący system mutex zostanie znaleziony z tą nazwą. Ten parametr jest przekazywany jako niezainicjowany.
- mutexSecurity
- MutexSecurity
Opcjonalne zabezpieczenia kontroli dostępu mutex do zastosowania.
Zwraca
Obiekt reprezentujący systemowy mutex, o nazwie lub lokalny mutex, jeśli bez nazw.
Wyjątki
Tylko program .NET Framework: name
jest dłuższy niż MAX_PATH (260 znaków).
Nazwa name
jest niepoprawna. Może to być z różnych powodów, w tym niektóre ograniczenia, które mogą zostać wprowadzone przez system operacyjny, takie jak nieznany prefiks lub nieprawidłowe znaki. Należy pamiętać, że w nazwach i typowych prefiksach "Global\" i "Local\" jest rozróżniana wielkość liter.
-lub-
Wystąpił inny błąd. Właściwość HResult
może zawierać więcej informacji.
Tylko system Windows: name
określono nieznaną przestrzeń nazw. Aby uzyskać więcej informacji, zobacz Nazwy obiektów .
Wartość name
jest za długa. Ograniczenia długości mogą zależeć od systemu operacyjnego lub konfiguracji.
Nie można utworzyć obiektu synchronizacji z podanym name
obiektem. Obiekt synchronizacji innego typu może mieć taką samą nazwę.
Uwagi
Element name
może mieć prefiks Global\
lub Local\
określać przestrzeń nazw. Po określeniu Global
przestrzeni nazw obiekt synchronizacji może być współużytkowany z dowolnymi procesami w systemie. Po określeniu Local
przestrzeni nazw, która jest również wartością domyślną, gdy nie określono przestrzeni nazw, obiekt synchronizacji może być współużytkowany z procesami w tej samej sesji. W systemie Windows sesja jest sesją logowania, a usługi są zwykle uruchamiane w innej sesji nieinterakcyjnej. W systemach operacyjnych przypominających system Unix każda powłoka ma własną sesję. Obiekty synchronizacji lokalnej sesji mogą być odpowiednie do synchronizacji między procesami z relacją nadrzędną/podrzędną, w której wszystkie są uruchamiane w tej samej sesji. Aby uzyskać więcej informacji na temat nazw obiektów synchronizacji w systemie Windows, zobacz Nazwy obiektów.
name
Jeśli element jest podany i obiekt synchronizacji żądanego typu już istnieje w przestrzeni nazw, istniejący obiekt synchronizacji jest otwarty. Jeśli obiekt synchronizacji innego typu już istnieje w przestrzeni nazw, WaitHandleCannotBeOpenedException
zgłaszany jest obiekt . W przeciwnym razie zostanie utworzony nowy obiekt synchronizacji.
Przestroga
Domyślnie nazwany mutex nie jest ograniczony do użytkownika, który go utworzył. Inni użytkownicy mogą być w stanie otworzyć i użyć mutex, w tym zakłócać działanie mutex, wprowadzając mutex i nie zamykając go. Aby ograniczyć dostęp do określonych użytkowników, możesz przekazać element MutexSecurity podczas tworzenia nazwanego mutexu. Unikaj używania nazwanych mutexes bez ograniczeń dostępu w systemach, które mogą mieć niezaufanych użytkowników z uruchomionym kodem.