Udostępnij za pośrednictwem


EventWaitHandleAcl.Create Metoda

Definicja

Pobiera lub tworzy EventWaitHandle wystąpienie, co umożliwia 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, aby zasygnalizować, czy nazwane zdarzenie jest tworzone w wyniku tego wywołania; false , aby ustawić ją na niesygnalizowaną.

mode
EventResetMode

Jedna z wartości wyliczenia, która określa, 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 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 jest tworzone zdarzenie lokalne, czyli wtedy, gdy name jest lub nullEmpty. Jeśli name ma prawidłową, niepustą wartość, ten argument jest ustawiany na true wartość po utworzeniu zdarzenia systemowego lub jest ustawiany na false wartość , jeśli istniejące zdarzenie systemowe zostanie znalezione z tą nazwą.

eventSecurity
EventWaitHandleSecurity

Opcjonalne zabezpieczenia kontroli dostępu systemu Windows do zastosowania.

Zwraca

Obiekt reprezentujący dojście oczekiwania zdarzeń zgodnie z żądaniem.

Wyjątki

Wartość mode wyliczenia była poza zakresem prawnym.

-lub-

Tylko program .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łaszana wartość .

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ę.

Nazwane zdarzenie istnieje, ale użytkownik nie ma żądanego dostępu zabezpieczeń.

Tylko program .NET Framework: name długość przekracza MAX_PATH (260 znaków).

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 nazwane zdarzenie nie jest ograniczone do użytkownika, który go utworzył. Inni użytkownicy mogą być w stanie otworzyć i użyć zdarzenia, 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