Funzione OpenSemaphoreW (synchapi.h)
Apre un oggetto semaforo denominato esistente.
Sintassi
HANDLE OpenSemaphoreW(
[in] DWORD dwDesiredAccess,
[in] BOOL bInheritHandle,
[in] LPCWSTR lpName
);
Parametri
[in] dwDesiredAccess
Accesso all'oggetto semaforo. La funzione ha esito negativo se il descrittore di sicurezza dell'oggetto specificato non consente l'accesso richiesto per il processo chiamante. Per un elenco dei diritti di accesso, vedere Synchronization Object Security and Access Rights.For a list of access rights, see Synchronization Object Security and Access Rights.
[in] bInheritHandle
Se questo valore è TRUE, i processi creati da questo processo erediteranno l'handle. In caso contrario, i processi non ereditano questo handle.
[in] lpName
Nome del semaforo da aprire. I confronti dei nomi fanno distinzione tra maiuscole e minuscole.
Questa funzione può aprire oggetti in uno spazio dei nomi privato. Per altre informazioni, vedere Spazi dei nomi degli oggetti.
Servizi terminal: Il nome può avere un prefisso "Global" o "Local" per aprire in modo esplicito un oggetto nello spazio dei nomi globale o sessione. Il resto del nome può contenere qualsiasi carattere ad eccezione del carattere barra rovesciata (\). Per altre informazioni, vedere Spazi dei nomi degli oggetti kernel.
Nota Il passaggio rapido degli utenti viene implementato usando le sessioni di Servizi terminal. Il primo utente a eseguire l'accesso usa la sessione 0, l'utente successivo per accedere usa la sessione 1 e così via. I nomi degli oggetti kernel devono seguire le linee guida descritte per Servizi terminal in modo che le applicazioni possano supportare più utenti.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un handle per l'oggetto semaforo.
Se la funzione ha esito negativo, il valore restituito è NULL. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
La funzione OpenSemaphore consente a più processi di aprire handle dello stesso semaforo. La funzione ha esito positivo solo se alcuni processi hanno già creato il semaforo usando la funzione CreateSemaphore . Il processo chiamante può usare l'handle restituito in qualsiasi funzione che richiede un handle per un oggetto semaforo, ad esempio le funzioni di attesa, soggetto alle limitazioni dell'accesso specificato nel parametro dwDesiredAccess .
L'handle può essere duplicato usando la funzione DuplicateHandle . Usare la funzione CloseHandle per chiudere l'handle. Il sistema chiude automaticamente l'handle al termine del processo. L'oggetto semaforo viene eliminato definitivamente quando l'ultimo handle è stato chiuso.
Requisiti
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | synchapi.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |