EventWaitHandleAcl.Create Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.