Función OpenSemaphoreW (synchapi.h)
Abre un objeto de semáforo con nombre existente.
Sintaxis
HANDLE OpenSemaphoreW(
[in] DWORD dwDesiredAccess,
[in] BOOL bInheritHandle,
[in] LPCWSTR lpName
);
Parámetros
[in] dwDesiredAccess
Acceso al objeto de semáforo. Se produce un error en la función si el descriptor de seguridad del objeto especificado no permite el acceso solicitado para el proceso de llamada. Para obtener una lista de los derechos de acceso, vea Synchronization Object Security and Access Rights.
[in] bInheritHandle
Si este valor es TRUE, los procesos creados por este proceso heredarán el identificador. De lo contrario, los procesos no heredan este identificador.
[in] lpName
Nombre del semáforo que se va a abrir. Las comparaciones de nombres distinguen mayúsculas de minúsculas.
Esta función puede abrir objetos en un espacio de nombres privado. Para obtener más información, vea Espacios de nombres de objeto.
Terminal Services: El nombre puede tener un prefijo "Global" o "Local" para abrir explícitamente un objeto en el espacio de nombres global o de sesión. El resto del nombre puede contener cualquier carácter excepto el carácter de barra diagonal inversa (\). Para obtener más información, vea Espacios de nombres de objeto kernel.
Nota El cambio rápido de usuarios se implementa mediante sesiones de Terminal Services. El primer usuario en iniciar sesión usa la sesión 0, el siguiente usuario para iniciar sesión usa la sesión 1, etc. Los nombres de objeto de kernel deben seguir las directrices descritas para Terminal Services para que las aplicaciones puedan admitir varios usuarios.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es un identificador para el objeto de semáforo.
Si la función no se realiza correctamente, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.
Comentarios
La función OpenSemaphore permite que varios procesos abran identificadores del mismo objeto de semáforo. La función solo se realiza correctamente si algún proceso ya ha creado el semáforo mediante la función CreateSemaphore . El proceso de llamada puede usar el identificador devuelto en cualquier función que requiera un identificador para un objeto de semáforo, como las funciones de espera, sujeto a las limitaciones del acceso especificado en el parámetro dwDesiredAccess .
El identificador se puede duplicar mediante la función DuplicateHandle . Use la función CloseHandle para cerrar el identificador. El sistema cierra el identificador automáticamente cuando finaliza el proceso. El objeto de semáforo se destruye cuando se ha cerrado su último identificador.
Requisitos
Cliente mínimo compatible | Windows XP [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | synchapi.h (incluir Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |