EventWaitHandleAcl.Create 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 EventWaitHandle wystąpienie, umożliwiając EventWaitHandleSecurity opcjonalne określenie wystąpienia w celu ustawienia go podczas tworzenia zdarzenia.
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
Parametry
- initialState
- Boolean
true
aby ustawić stan początkowy na sygnał, jeśli nazwane zdarzenie jest tworzone w wyniku tego wywołania; false
aby ustawić ją na niesygnalizowaną.
- mode
- EventResetMode
Jedna z wartości wyliczenia określająca, czy zdarzenie jest resetowane automatycznie, czy ręcznie.
- 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 służyć 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 wykluczeniu przestrzeni nazw musi być prawidłową nazwą pliku.
- createdNew
- Boolean
Gdy ta metoda zwraca, ten argument jest zawsze ustawiany na true
wartość , jeśli zostanie utworzone zdarzenie lokalne, czyli wtedy, gdy name
jest null
lub Empty. Jeśli name
ma prawidłową, niepustą wartość, ten argument jest ustawiany na true
wartość po utworzeniu zdarzenia systemowego lub jest ustawiony na false
wartość , jeśli zostanie znalezione istniejące zdarzenie systemowe o tej nazwie.
- eventSecurity
- EventWaitHandleSecurity
Opcjonalne zabezpieczenia kontroli dostępu systemu Windows do zastosowania.
Zwraca
Obiekt reprezentujący uchwyt oczekiwania zdarzenia zgodnie z żądaniem.
Wyjątki
Wartość mode
wyliczenia była poza zakresem prawnym.
-lub-
tylko .NET Framework: name
jest dłuższy niż MAX_PATH (260 znaków).
Wartość mode
wyliczenia była poza zakresem prawnym. W niektórych przypadkach ArgumentException zamiast tego jest zgłaszany.
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 nazwy i typowe prefiksy "Global\" i "Local\" są uwzględniane wielkość liter.
-lub-
Wystąpił inny błąd. Właściwość HResult
może dostarczyć więcej informacji.
Tylko system Windows: name
określono nieznaną przestrzeń nazw. Aby uzyskać więcej informacji, zobacz Nazwy obiektów .
Jest name
za długi. Ograniczenia długości mogą zależeć od systemu operacyjnego lub konfiguracji.
Nie można utworzyć obiektu synchronizacji z podanym name
. Obiekt synchronizacji innego typu może mieć taką samą nazwę.
Nazwane zdarzenie istnieje, ale użytkownik nie ma odpowiedniego dostępu do zabezpieczeń.
tylko .NET Framework: name
długość przekracza MAX_PATH (260 znaków).
Uwagi
Element name
może być poprzedzony prefiksem Global\
lub Local\
w celu określenia przestrzeni 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ż domyślna, 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 podobnych do systemu Unix każda powłoka ma własną sesję. Obiekty synchronizacji lokalnej sesji mogą być odpowiednie do synchronizowania procesów 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, a 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
jest zgłaszany. W przeciwnym razie zostanie utworzony nowy obiekt synchronizacji.
Przestroga
Domyślnie nazwane zdarzenie nie jest ograniczone do użytkownika, który go utworzył. Inni użytkownicy mogą być w stanie otworzyć zdarzenie i korzystać z niego, w tym zakłócać działanie zdarzenia przez ustawienie lub zresetować je niewłaściwie. Aby ograniczyć dostęp do określonych użytkowników, możesz przekazać element EventWaitHandleSecurity podczas tworzenia nazwanego zdarzenia. Unikaj używania nazwanych zdarzeń bez ograniczeń dostępu w systemach, które mogą mieć niezaufanych użytkowników z uruchomionym kodem.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla