Freigeben über


EventWaitHandleAcl.Create Methode

Definition

Hiermit wird eine EventWaitHandle-Instanz abgerufen oder erstellt, sodass optional eine EventWaitHandleSecurity-Instanz angegeben werden kann, um eine Festlegung bei der Ereigniserstellung zu ermöglichen.

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 anfänglichen Zustands auf „signalisiert“, wenn das benannte Ereignis als Ergebnis dieses Aufrufs erstellt wird; false zum Festlegen auf „nicht signalisiert“.

mode
EventResetMode

Dies ist einer der Enummerationswerte, 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; andernfalls null oder eine leere Zeichenfolge. Bei dem Namen wird die Groß- und Kleinschreibung berücksichtigt. Das umgekehrte Schrägstrichzeichen (\) ist reserviert und kann nur zum Angeben eines Namespace verwendet werden. Weitere Informationen zu Namespaces finden Sie im Abschnitt hinweise. Je nach Betriebssystem kann es weitere Einschränkungen für den Namen geben. Unter Unix-basierten Betriebssystemen muss beispielsweise der Name nach dem Ausschluss des Namespace ein gültiger Dateiname sein.

createdNew
Boolean

Wenn diese Methode zurückgegeben wird, wird dieses Argument immer auf true festgelegt, wenn ein lokales Ereignis erstellt wird (d. h. wenn name entweder null oder dem Feld Empty entspricht). Wenn name über einen gültigen und nicht leeren Wert verfügt, wird dieses Argument auf true festgelegt, wenn das Systemereignis erstellt wird, oder es wird auf false festgelegt, wenn ein vorhandenes Systemereignis mit diesem Namen gefunden wird.

eventSecurity
EventWaitHandleSecurity

Dies ist die optional anzuwendende Windows-Zugriffssteuerungssicherheit.

Gibt zurück

Dies ist ein Objekt, das wie angefordert ein Ereignis-Wait-Handle darstellt.

Ausnahmen

Der Enumerationswert mode lag außerhalb des zulässigen Bereichs.

- oder -

Nur .NET Framework: name ist länger als MAX_PATH (260 Zeichen).

Der Enumerationswert mode lag außerhalb des zulässigen Bereichs. In einigen Fällen wird stattdessen ArgumentException ausgelöst.

name ist ungültig. Dies kann aus verschiedenen Gründen der Fall sein, z. B. durch Einschränkungen, die vom Betriebssystem auferlegt werden, etwa ein unbekanntes Präfix oder ungültige Zeichen. Beachten Sie, dass bei dem Namen und den allgemeinen Präfixen "Global\" und "Local\" die Groß-/Kleinschreibung beachtet wird.

- oder -

Es ist ein anderer Fehler aufgetreten. DieHResult-Eigenschaft stellt möglicherweise weitere Informationen zur Verfügung.

Nur Windows: name hat einen unbekannten Namespace angegeben. Weitere Informationen finden Sie unter Objektnamen.

name ist zu lang. Längeneinschränkungen können vom Betriebssystem oder der Konfiguration abhängen.

Ein Synchronisierungsobjekt mit dem angegebenen name kann nicht erstellt werden. Ein Synchronisierungsobjekt eines anderen Typs weist ggf. denselben Namen auf.

Das benannte Ereignis ist vorhanden, aber der Benutzer verfügt nicht über den erforderlichen Sicherheitszugriff.

Nur .NET Framework: Die Länge name überschreitet MAX_PATH (260 Zeichen).

Hinweise

Kann name mit Global\ dem Präfix oder Local\ versehen werden, um einen Namespace anzugeben. Wenn der Global Namespace angegeben ist, kann das Synchronisierungsobjekt für alle Prozesse im System freigegeben werden. Wenn der Local Namespace angegeben wird, was auch der Standardwert ist, wenn kein Namespace angegeben wird, kann das Synchronisierungsobjekt für Prozesse in derselben Sitzung freigegeben werden. Unter Windows ist eine Sitzung eine Anmeldesitzung, und Dienste werden in der Regel in einer anderen nicht interaktiven Sitzung ausgeführt. Unter Unix-ähnlichen Betriebssystemen verfügt jede Shell über eine eigene Sitzung. Sitzungslokale Synchronisierungsobjekte eignen sich möglicherweise für die Synchronisierung zwischen Prozessen mit einer über-/untergeordneten Beziehung, in der sie alle in derselben Sitzung ausgeführt werden. Weitere Informationen zu Synchronisierungsobjektnamen unter Windows finden Sie unter Objektnamen.

Wenn ein name bereitgestellt wird und ein Synchronisierungsobjekt des angeforderten Typs bereits im Namespace vorhanden ist, wird das vorhandene Synchronisierungsobjekt geöffnet. Wenn ein Synchronisierungsobjekt eines anderen Typs bereits im Namespace vorhanden ist, wird eine WaitHandleCannotBeOpenedException ausgelöst. Andernfalls wird ein neues Synchronisierungsobjekt erstellt.

Achtung

Standardmäßig ist ein benanntes Ereignis nicht auf den Benutzer beschränkt, der es erstellt hat. Andere Benutzer sind möglicherweise in der Lage, das Ereignis zu öffnen und zu verwenden, einschließlich einer Störung des Ereignisses, indem sie es unangemessen festlegen oder zurücksetzen. Um den Zugriff auf bestimmte Benutzer einzuschränken, können Sie beim Erstellen des benannten Ereignisses eine EventWaitHandleSecurity übergeben. Vermeiden Sie die Verwendung benannter Ereignisse ohne Zugriffsbeschränkungen auf Systemen, die möglicherweise nicht vertrauenswürdige Benutzer haben, die Code ausführen.

Gilt für: