Share via


OpenSemaphoreW, fonction (synchapi.h)

Ouvre un objet sémaphore nommé existant.

Syntaxe

HANDLE OpenSemaphoreW(
  [in] DWORD   dwDesiredAccess,
  [in] BOOL    bInheritHandle,
  [in] LPCWSTR lpName
);

Paramètres

[in] dwDesiredAccess

Accès à l’objet sémaphore. La fonction échoue si le descripteur de sécurité de l’objet spécifié n’autorise pas l’accès demandé pour le processus appelant. Pour obtenir la liste des droits d’accès, consultez Synchronization Object Security and Access Rights.

[in] bInheritHandle

Si cette valeur est TRUE, les processus créés par ce processus héritent du handle. Sinon, les processus n’héritent pas de ce handle.

[in] lpName

Nom du sémaphore à ouvrir. Les comparaisons de noms respectent la casse.

Cette fonction peut ouvrir des objets dans un espace de noms privé. Pour plus d’informations, consultez Espaces de noms d’objets.

Terminal Services : Le nom peut avoir un préfixe « Global » ou « Local » pour ouvrir explicitement un objet dans l’espace de noms global ou de session. Le reste du nom peut contenir n’importe quel caractère à l’exception de la barre oblique inverse (\). Pour plus d’informations, consultez Espaces de noms d’objets du noyau.

Note La commutation rapide des utilisateurs est implémentée à l’aide de sessions Terminal Services. Le premier utilisateur à se connecter utilise la session 0, l’utilisateur suivant pour se connecter utilise la session 1, et ainsi de suite. Les noms d’objets de noyau doivent suivre les instructions décrites pour Terminal Services afin que les applications puissent prendre en charge plusieurs utilisateurs.

Valeur retournée

Si la fonction réussit, la valeur de retour est un handle pour l’objet sémaphore.

Si la fonction échoue, la valeur de retour est NULL. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

La fonction OpenSemaphore permet à plusieurs processus d’ouvrir des handles du même objet sémaphore. La fonction réussit uniquement si un processus a déjà créé le sémaphore à l’aide de la fonction CreateSemaphore . Le processus appelant peut utiliser le handle retourné dans toute fonction qui nécessite un handle pour un objet sémaphore, comme les fonctions d’attente, sous réserve des limitations de l’accès spécifié dans le paramètre dwDesiredAccess .

Le handle peut être dupliqué à l’aide de la fonction DuplicateHandle . Utilisez la fonction CloseHandle pour fermer le handle. Le système ferme automatiquement le handle à l’arrêt du processus. L’objet sémaphore est détruit lorsque son dernier handle a été fermé.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête synchapi.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CloseHandle

CreateSemaphore

DuplicateHandle

Noms d’objets

ReleaseSemaphore

Objets sémaphores

Fonctions de synchronisation