EventWaitHandleAcl.Create Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o crea un'istanza EventWaitHandle , consentendo di specificare facoltativamente un'istanza EventWaitHandleSecurity di 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 su segnalato se l'evento denominato viene creato in seguito a questa chiamata; false per impostarlo su non segnalato.
- mode
- EventResetMode
Uno dei valori di enumerazione che determina se l'evento viene reimpostato automaticamente o manualmente.
- name
- String
Nome, se l'oggetto di sincronizzazione deve essere condiviso con altri processi; in caso contrario, null o una stringa vuota. Il nome è sensibile alle maiuscole. Il carattere 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 termina, questo argomento viene sempre impostato su true se viene creato un evento locale, ovvero quando name è null o Empty. Se name ha un valore valido e non vuoto, questo argomento viene impostato su true quando viene creato l'evento di sistema oppure è impostato su false se viene trovato un evento di sistema esistente con tale nome.
- eventSecurity
- EventWaitHandleSecurity
Oggetto facoltativo Windows la sicurezza del controllo di accesso da applicare.
Valori restituiti
Oggetto che rappresenta un handle di attesa dell'evento come richiesto.
Eccezioni
Il mode valore di enumerazione non era compreso nell'intervallo legale.
oppure
solo .NET Framework: name è più lungo di MAX_PATH (260 caratteri).
Il mode valore di enumerazione non era compreso nell'intervallo legale. In alcuni casi ArgumentException viene invece generata.
name non è valido. Questo può essere per vari motivi, incluse alcune restrizioni che possono essere inserite dal sistema operativo, ad esempio un prefisso sconosciuto o caratteri non validi. Si noti che il nome e i prefissi comuni "Global\" e "Local\" fanno distinzione tra maiuscole e minuscole.
oppure
Si è verificato un altro errore. La HResult proprietà può fornire altre informazioni.
solo Windows: name specificato uno spazio dei nomi sconosciuto. Per altre informazioni, vedere Nomi di oggetti .
name supera la lunghezza consentita. Le restrizioni relative alla lunghezza possono dipendere dal sistema operativo o dalla configurazione.
Impossibile creare un oggetto di sincronizzazione con l'oggetto specificato name . 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 i MAX_PATH (260 caratteri).
Commenti
Può name essere preceduto Global\ da o Local\ per specificare uno spazio dei nomi. Quando si specifica lo Global spazio dei nomi, l'oggetto di sincronizzazione può essere condiviso con qualsiasi processo nel sistema. Quando si specifica lo Local spazio dei nomi , che è anche l'impostazione predefinita quando non viene specificato alcuno 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 simili a Unix, ogni shell ha una 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 Nomina oggetto.
Se viene specificato un name oggetto e un oggetto di sincronizzazione del tipo richiesto esiste già nello spazio dei nomi, viene aperto l'oggetto di sincronizzazione esistente. Se nello spazio dei nomi esiste già un oggetto di sincronizzazione di un tipo diverso, viene generata un'eccezione WaitHandleCannotBeOpenedException . In caso contrario, viene creato un nuovo oggetto di sincronizzazione.
Attenzione
Per impostazione predefinita, un evento denominato non è limitato all'utente che lo ha creato. Altri utenti possono essere in grado di aprire e usare l'evento, inclusa l'interazione con l'evento impostandolo o reimpostandolo in modo inappropriato. Per limitare l'accesso a utenti specifici, è possibile passare un oggetto EventWaitHandleSecurity durante la creazione dell'evento denominato. Evitare di usare eventi denominati senza restrizioni di accesso nei sistemi che potrebbero avere utenti non attendibili che eseguono codice.