EventWaitHandleAcl.Create Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft eine EventWaitHandle Instanz ab oder erstellt sie, sodass eine EventWaitHandleSecurity Instanz optional angegeben werden kann, um sie während der Ereigniserstellung festzulegen.
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
Parameter
- initialState
- Boolean
true zum Festlegen des Anfangszustands, der signalisiert wird, wenn das benannte Ereignis als Ergebnis dieses Aufrufs erstellt wird; false um sie auf nicht signalisiert festzulegen.
- mode
- EventResetMode
Einer der Enumerationswerte, der bestimmt, ob das Ereignis automatisch oder manuell zurückgesetzt wird.
- name
- String
Der Name, wenn das Synchronisierungsobjekt für andere Prozesse freigegeben werden soll; null andernfalls oder eine leere Zeichenfolge. Bei dem Namen wird die Groß-/Kleinschreibung beachtet. Das umgekehrte Schrägstrichzeichen (\) ist reserviert und kann nur verwendet werden, um einen Namespace anzugeben. Weitere Informationen zu Namespaces finden Sie im Abschnitt "Hinweise". Je nach Betriebssystem kann es weitere Einschränkungen für den Namen geben. Bei Unix-basierten Betriebssystemen muss beispielsweise der Name nach Ausschluss des Namespaces ein gültiger Dateiname sein.
- createdNew
- Boolean
Wenn diese Methode zurückgegeben wird, wird dieses Argument immer festgelegt true , wenn ein lokales Ereignis erstellt wird, d. h. wann name oder nullEmpty. Wenn name ein gültiger, nicht leerer Wert vorhanden ist, wird dieses Argument festgelegt true , wenn das Systemereignis erstellt wird, oder es wird festgelegt false , ob ein vorhandenes Systemereignis mit diesem Namen gefunden wird.
- eventSecurity
- EventWaitHandleSecurity
Die optionale Windows zu übernehmende Zugriffssteuerungssicherheit.
Gibt zurück
Ein Objekt, das ein Ereigniswartehandle darstellt, wie angefordert.
Ausnahmen
Der mode Enumerationswert war außerhalb des zulässigen Bereichs.
-oder-
.NET Framework: name ist länger als MAX_PATH (260 Zeichen).
Der mode Enumerationswert war außerhalb des zulässigen Bereichs. In einigen Fällen ArgumentException wird stattdessen ausgelöst.
name ist ungültig. Dies kann aus verschiedenen Gründen sein, einschließlich einiger Einschränkungen, die vom Betriebssystem platziert werden können, z. B. ein unbekanntes Präfix oder ungültige Zeichen. Beachten Sie, dass bei namen und allgemeinen Präfixen "Global\" und "Local\" die Groß-/Kleinschreibung beachtet wird.
-oder-
Es gab einen anderen Fehler. Die HResult Eigenschaft kann weitere Informationen bereitstellen.
nur Windows: name einen unbekannten Namespace angegeben. Weitere Informationen finden Sie unter Objektnamen .
name ist zu lang. Längenbeschränkungen können vom Betriebssystem oder der Konfiguration abhängen.
Ein Synchronisierungsobjekt mit dem bereitgestellten name Objekt kann nicht erstellt werden. Ein Synchronisierungsobjekt eines anderen Typs hat möglicherweise denselben Namen.
Das benannte Ereignis ist vorhanden, der Benutzer verfügt jedoch nicht über den gewünschten Sicherheitszugriff.
nur .NET Framework: Die Länge name liegt über MAX_PATH (260 Zeichen).
Hinweise
Möglicherweise name wird dem Namespace ein Präfix vorangestellt Global\ oder Local\ angegeben. Wenn der Global Namespace angegeben ist, kann das Synchronisierungsobjekt für alle Prozesse im System freigegeben werden. Wenn der Local Namespace angegeben ist, was auch der Standardwert ist, wenn kein Namespace angegeben wird, kann das Synchronisierungsobjekt für Prozesse in derselben Sitzung freigegeben werden. Bei Windows ist eine Sitzung eine Anmeldesitzung, und Dienste werden in der Regel in einer anderen nicht interaktiven Sitzung ausgeführt. Auf Unix-ähnlichen Betriebssystemen verfügt jede Shell über eine eigene Sitzung. Sitzungslokale Synchronisierungsobjekte können für die Synchronisierung zwischen Prozessen mit einer Beziehung zwischen übergeordnetem/untergeordnetem Element geeignet sein, in der sie alle in derselben Sitzung ausgeführt werden. Weitere Informationen zu Synchronisierungsobjektnamen in Windows finden Sie unter Object Names.
Wenn ein name Synchronisierungsobjekt des angeforderten Typs bereits im Namespace vorhanden ist, wird das vorhandene Synchronisierungsobjekt geöffnet. Wenn bereits ein Synchronisierungsobjekt eines anderen Typs im Namespace vorhanden ist, wird ein WaitHandleCannotBeOpenedException Fehler ausgelöst. Andernfalls wird ein neues Synchronisierungsobjekt erstellt.
Vorsicht
Standardmäßig ist ein benanntes Ereignis nicht auf den Benutzer beschränkt, der es erstellt hat. Andere Benutzer können das Ereignis möglicherweise öffnen und verwenden, einschließlich der Störung des Ereignisses durch Festlegen oder Unangemessenes Zurücksetzen des Ereignisses. Um den Zugriff auf bestimmte Benutzer einzuschränken, können Sie beim Erstellen des benannten Ereignisses ein EventWaitHandleSecurity übergeben. Vermeiden Sie die Verwendung benannter Ereignisse ohne Zugriffsbeschränkungen für Systeme, die möglicherweise nicht vertrauenswürdige Benutzer haben, die Code ausführen.