MutexAcl.Create(Boolean, String, Boolean, MutexSecurity) 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 Mutex une MutexSecurity instance, ce qui permet d’être spécifié éventuellement pour le définir lors de la création de mutex.
public:
static System::Threading::Mutex ^ Create(bool initiallyOwned, System::String ^ name, [Runtime::InteropServices::Out] bool % createdNew, System::Security::AccessControl::MutexSecurity ^ mutexSecurity);
public static System.Threading.Mutex Create(bool initiallyOwned, string? name, out bool createdNew, System.Security.AccessControl.MutexSecurity? mutexSecurity);
static member Create : bool * string * bool * System.Security.AccessControl.MutexSecurity -> System.Threading.Mutex
Public Shared Function Create (initiallyOwned As Boolean, name As String, ByRef createdNew As Boolean, mutexSecurity As MutexSecurity) As Mutex
Paramètres
- initiallyOwned
- Boolean
true pour donner à l’appel la propriété initiale du thread appelant du mutex système nommé si le mutex système nommé est créé à la suite de cet appel ; sinon, false.
- name
- String
Nom, si l’objet de synchronisation doit être partagé avec d’autres processus ; sinon, null ou une chaîne vide. Le nom est sensible à la casse. La barre oblique inverse (\) est réservée et peut uniquement être utilisée 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
Lorsque cette méthode est retournée, cet argument est toujours défini true sur si un mutex local est créé ; autrement dit, quand name ou Emptynull . S’il name a une valeur non vide valide, cet argument est défini true sur le moment où le mutex système est créé ou si un mutex système existant est false trouvé avec ce nom. Ce paramètre est passé non initialisé.
- mutexSecurity
- MutexSecurity
Sécurité facultative du contrôle d’accès mutex à appliquer.
Retours
Objet qui représente un mutex système, s’il est nommé ou mutex local, s’il est sans nom.
Exceptions
.NET Framework uniquement : name est plus long que MAX_PATH (260 caractères).
name n’est pas valide. Cela peut être pour diverses raisons, notamment certaines restrictions qui peuvent être placées par le système d’exploitation, telles qu’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 HResult propriété peut fournir plus d’informations.
Windows uniquement : name 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.
Impossible de créer un objet de synchronisation avec l’objet fourni name . Un objet de synchronisation d’un type différent peut avoir le même nom.
Remarques
Il name peut être préfixé Global\ ou Local\ spécifier un espace de noms. Lorsque l’espace Global de noms est spécifié, l’objet de synchronisation peut être partagé avec tous les 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 être appropriés pour la synchronisation entre les 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 Object Names.
Si un name objet de synchronisation 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 type différent existe déjà dans l’espace de noms, un WaitHandleCannotBeOpenedException objet est levée. Sinon, un nouvel objet de synchronisation est créé.
Avertissement
Par défaut, un mutex nommé n’est pas limité à l’utilisateur qui l’a créé. D’autres utilisateurs peuvent être en mesure d’ouvrir et d’utiliser le mutex, y compris interférer avec le mutex en entrant le mutex et en ne le quittant pas. Pour restreindre l’accès à des utilisateurs spécifiques, vous pouvez passer un MutexSecurity message lors de la création du mutex nommé. Évitez d’utiliser des mutex nommés sans restrictions d’accès sur les systèmes susceptibles d’avoir des utilisateurs non approuvés exécutant du code.