Share via


EventWaitHandleAcl.Create Metodo

Definizione

Ottiene o crea un'istanza di EventWaitHandle, che facoltativamente consente di specificare un'istanza di EventWaitHandleSecurity per impostarla durante la creazione dell'evento.

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

Parametri

initialState
Boolean

true per impostare lo stato iniziale come segnalato se l'evento denominato viene creato come risultato della chiamata. false per impostarlo come non segnalato.

mode
EventResetMode

Ottiene uno dei valori di enum che determina se l'evento viene reimpostato manualmente o automaticamente.

name
String

Il nome, se l'oggetto di sincronizzazione deve essere condiviso con altri processi; in caso contrario null o una stringa vuota. Per il nome è prevista la distinzione tra maiuscole e minuscole. Il carattere della barra rovesciata (\) è riservato e può essere usato solo per specificare uno spazio dei nomi. Per altre informazioni sugli spazi dei nomi, vedere la sezione osservazioni. Potrebbero esserci ulteriori restrizioni sul nome a seconda del sistema operativo. Ad esempio, nei sistemi operativi basati su Unix, il nome dopo l'esclusione dello spazio dei nomi deve essere un nome di file valido.

createdNew
Boolean

Quando questo metodo viene restituito, questo argomento è sempre impostato su true se viene creato un evento locale, ovvero quando name è null o Empty. Se name ha un valore valido non vuoto, questo argomento è impostato su true quando l'evento di sistema viene creato oppure è impostato su false se esiste un evento di sistema con tale nome.

eventSecurity
EventWaitHandleSecurity

Sicurezza del controllo di accesso di Windows facoltativo da applicare.

Restituisce

Oggetto che rappresenta un handle di attesa evento come richiesto.

Eccezioni

Il valore enum mode non è compreso nell'intervallo consentito.

-oppure-

Solo .NET Framework: la lunghezza di name supera MAX_PATH (260 caratteri).

Il valore enum mode non è compreso nell'intervallo consentito. In alcuni casi viene generato ArgumentException.

name non è valido. I motivi possono essere diversi, e tra questi limitazioni implementate dal sistema operativo, come prefisso sconosciuto o caratteri non validi. Si noti che il nome e i prefissi comuni "Global\" e "Local\" sono distinzione tra maiuscole e minuscole.

-oppure-

Si è verificato un altro errore. È possibile che la proprietà HResult offra ulteriori informazioni.

Solo Windows: name ha specificato uno spazio dei nomi sconosciuto. Per altre informazioni, vedere Object Names (Nomi oggetti).

name supera la lunghezza consentita. Le limitazioni di lunghezza possono dipendere dal sistema operativo o dalla configurazione.

Non è possibile creare un oggetto di sincronizzazione con l'elemento name specificato. Un oggetto di sincronizzazione di un tipo diverso potrebbe avere lo stesso nome.

L'evento denominato esiste, ma l'utente non dispone dell'accesso di sicurezza desiderato.

Solo .NET Framework: la lunghezza di name supera MAX_PATH (260 caratteri).

Commenti

Può name essere preceduto da Global\ o Local\ per specificare uno spazio dei nomi. Quando viene specificato lo spazio dei nomi, l'oggetto Global di sincronizzazione può essere condiviso con tutti i processi nel sistema. Quando viene specificato lo Local spazio dei nomi, che è anche il valore predefinito quando non viene specificato alcun spazio dei nomi, l'oggetto di sincronizzazione può essere condiviso con i processi nella stessa sessione. In Windows una sessione è una sessione di accesso e i servizi vengono in genere eseguiti in una sessione non interattiva diversa. Nei sistemi operativi Unix, ogni shell ha la propria sessione. Gli oggetti di sincronizzazione locale della sessione possono essere appropriati per la sincronizzazione tra processi con una relazione padre/figlio in cui vengono eseguiti tutti nella stessa sessione. Per altre informazioni sui nomi degli oggetti di sincronizzazione in Windows, vedere Nomi oggetti.

Se viene specificato un name oggetto di sincronizzazione del tipo richiesto esiste già nello spazio dei nomi, viene aperto l'oggetto di sincronizzazione esistente. Se esiste già un oggetto di sincronizzazione di un tipo diverso nello spazio dei nomi, viene generato un WaitHandleCannotBeOpenedException oggetto di sincronizzazione. In caso contrario, viene creato un nuovo oggetto di sincronizzazione.

Attenzione

Per impostazione predefinita, un evento denominato non è limitato all'utente che l'ha creata. Altri utenti possono essere in grado di aprire e usare l'evento, incluso l'interferimento con l'evento impostando o reimpostandolo in modo inappropriato. Per limitare l'accesso a utenti specifici, è possibile passare un EventWaitHandleSecurity oggetto durante la creazione dell'evento denominato. Evitare l'uso di eventi denominati senza restrizioni di accesso nei sistemi che potrebbero avere utenti non attendibili che eseguono codice.

Si applica a