Condividi tramite


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

Vedere anche

Closehandle

CreateSemaphore

DuplicateHandle

Nomi degli oggetti

ReleaseSemaphore

Oggetti semafori

Funzioni di sincronizzazione