Partager via


EventWaitHandleAcl.Create Méthode

Définition

Obtient ou crée une instance de EventWaitHandle, qui permet de spécifier une instance de EventWaitHandleSecurity pour la définir lors de la création de l’événement.

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

Paramètres

initialState
Boolean

true pour définir l’état initial sur signalé si l’événement nommé est créé suite à cet appel ; false pour le définir sur non signalé.

mode
EventResetMode

Une des valeurs d’énumération qui détermine si l’événement se réinitialise automatiquement ou manuellement.

name
String

Nom, si l’événement doit être partagé avec d’autres processus ; sinon, null ou une chaîne vide. Le nom respecte la casse. Le caractère de barre oblique inverse (\) est réservé et ne peut être utilisé que pour spécifier un espace de noms. Pour plus d’informations sur les espaces de noms, consultez la section remarques. Il peut y avoir d’autres restrictions sur le nom en fonction du système d’exploitation. Par exemple, sur les systèmes d’exploitation Unix, le nom après l’exclusion de l’espace de noms doit être un nom de fichier valide.

createdNew
Boolean

Quand cette méthode retourne, cet argument est toujours défini sur true si un événement local est créé ; autrement dit, quand name est null ou Empty. Si name a une valeur non vide valide, cet argument est défini sur true quand l’événement système est créé ou il est défini sur false si un événement système existant porte ce nom.

eventSecurity
EventWaitHandleSecurity

Sécurité du contrôle d’accès Windows facultative à appliquer.

Retours

Objet qui représente un descripteur d’attente d’événement comme demandé.

Exceptions

La valeur d’énumération mode était en dehors de la plage autorisée.

- ou -

.NET Framework uniquement : name est plus long que MAX_PATH (260 caractères).

La valeur d’énumération mode était en dehors de la plage autorisée. Il peut arriver que ArgumentException soit levé à la place.

name n'est pas valide. Il peut y avoir diverses raisons à cela, notamment des restrictions placées par le système d’exploitation (par exemple, un préfixe inconnu ou des caractères non valides). Notez que le nom et les préfixes communs « Global\ » et « Local\ » respectent la casse.

- ou -

Il y a eu une autre erreur. La propriété HResult est susceptible de fournir plus d’informations.

Windows uniquement : name a spécifié un espace de noms inconnu. Pour plus d’informations, consultez Noms d’objets.

name est trop long. Les restrictions de longueur peuvent dépendre du système d’exploitation ou de la configuration.

Il n’est pas possible de créer un objet de synchronisation portant le name fourni. Il est possible qu’un objet de synchronisation d’un autre type possède le même nom.

L’événement nommé existe mais l’utilisateur ne dispose de l’accès de sécurité nécessaire.

.NET Framework uniquement : la longueur de name est supérieure à MAX_PATH (260 caractères).

Remarques

Le name peut être préfixé avec Global\ ou Local\ pour spécifier un espace de noms. Lorsque l’espace Global de noms est spécifié, l’objet de synchronisation peut être partagé avec n’importe quel processus sur le système. Lorsque l’espace Local de noms est spécifié, qui est également la valeur par défaut lorsqu’aucun espace de noms n’est spécifié, l’objet de synchronisation peut être partagé avec des processus dans la même session. Sur Windows, une session est une session de connexion et les services s’exécutent généralement dans une autre session non interactive. Sur les systèmes d’exploitation de type Unix, chaque interpréteur de commandes a sa propre session. Les objets de synchronisation locale de session peuvent convenir à la synchronisation entre des processus avec une relation parent/enfant où ils s’exécutent tous dans la même session. Pour plus d’informations sur les noms d’objets de synchronisation sur Windows, consultez Noms d’objets.

Si un name est fourni et qu’un objet de synchronisation du type demandé existe déjà dans l’espace de noms, l’objet de synchronisation existant est ouvert. Si un objet de synchronisation d’un autre type existe déjà dans l’espace de noms, un WaitHandleCannotBeOpenedException est levée. Sinon, un nouvel objet de synchronisation est créé.

Attention

Par défaut, un événement nommé n’est pas limité à l’utilisateur qui l’a créé. D’autres utilisateurs peuvent ouvrir et utiliser l’événement, notamment en interférant avec l’événement en le définissant ou en le réinitialisant de manière inappropriée. Pour restreindre l’accès à des utilisateurs spécifiques, vous pouvez passer un EventWaitHandleSecurity lors de la création de l’événement nommé. Évitez d’utiliser des événements nommés sans restrictions d’accès sur les systèmes qui peuvent avoir des utilisateurs non approuvés exécutant du code.

S’applique à