Freigeben über


OpenSemaphoreW-Funktion (synchapi.h)

Öffnet ein vorhandenes benanntes Semaphorobjekt.

Syntax

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

Parameter

[in] dwDesiredAccess

Der Zugriff auf das Semaphorobjekt. Die Funktion schlägt fehl, wenn der Sicherheitsdeskriptor des angegebenen Objekts den angeforderten Zugriff für den aufrufenden Prozess nicht zulässt. Eine Liste der Zugriffsrechte finden Sie unter Synchronisierungsobjektsicherheit und Zugriffsrechte.

[in] bInheritHandle

Wenn dieser Wert TRUE ist, erben von diesem Prozess erstellte Prozesse das Handle. Andernfalls erben die Prozesse dieses Handle nicht.

[in] lpName

Der Name des zu öffnenden Semaphors. Bei Namenvergleichen wird die Groß-/Kleinschreibung beachtet.

Diese Funktion kann Objekte in einem privaten Namespace öffnen. Weitere Informationen finden Sie unter Objektnamespaces.

Terminaldienste: Der Name kann ein Präfix "Global" oder "Local" aufweisen, um ein Objekt explizit im globalen Oder Sitzungsnamespace zu öffnen. Der Rest des Namens kann ein beliebiges Zeichen mit Ausnahme des umgekehrten Schrägstrichs (\) enthalten. Weitere Informationen finden Sie unter Kernelobjektnamespaces.

Hinweis Der schnelle Benutzerwechsel wird mithilfe von Terminaldienstesitzungen implementiert. Der erste Benutzer, der sich anmeldet, verwendet Sitzung 0, der nächste Benutzer zum Anmelden verwendet Sitzung 1 usw. Kernelobjektnamen müssen den für Terminaldienste beschriebenen Richtlinien entsprechen, damit Anwendungen mehrere Benutzer unterstützen können.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Handle für das Semaphorobjekt.

Wenn bei der Funktion ein Fehler auftritt, ist der Rückgabewert NULL. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die OpenSemaphore-Funktion ermöglicht es mehreren Prozessen, Handles desselben Semaphorobjekts zu öffnen. Die Funktion ist nur erfolgreich, wenn ein Prozess den Semaphor bereits mithilfe der CreateSemaphore-Funktion erstellt hat. Der aufrufende Prozess kann das zurückgegebene Handle in jeder Funktion verwenden, die ein Handle für ein Semaphorobjekt erfordert, z. B . die Wartefunktionen, vorbehaltlich der Einschränkungen des zugriffs, die im dwDesiredAccess-Parameter angegeben sind.

Das Handle kann mit der DuplicateHandle-Funktion dupliziert werden. Verwenden Sie die CloseHandle-Funktion , um das Handle zu schließen. Das System schließt den Handle automatisch, wenn der Prozess beendet wird. Das Semaphorobjekt wird zerstört, wenn sein letztes Handle geschlossen wurde.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile synchapi.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CloseHandle

CreateSemaphor

DuplicateHandle

Objektnamen

ReleaseSemaphor

Semaphorobjekte

Synchronisierungsfunktionen