Voltar à lista
Windows Win32Sincronizaçãokernel32.dll

CreateSemaphoreW

Cria (ou abre, se nomeado) um objeto semáforo do kernel, com contador e limite máximo.

Descrição

Equivalente funcional aproximado do semáforo POSIX/System V do Linux, mas como objeto do kernel Windows com HANDLE.

Header: synchapi.hDLL: kernel32.dllNative API: NtCreateSemaphore

Assinatura

HANDLE CreateSemaphoreW(
    LPSECURITY_ATTRIBUTES lpSemaphoreAttributes,
    LONG lInitialCount,
    LONG lMaximumCount,
    LPCWSTR lpName
);

Parâmetros

ParâmetroTipoDescrição
lpSemaphoreAttributesLPSECURITY_ATTRIBUTESAtributos de segurança, ou NULL.
lInitialCountLONGContador inicial.
lMaximumCountLONGContador máximo permitido.
lpNameLPCWSTRNome opcional, para compartilhamento entre processos.

Valor de retorno

Um handle para o semáforo em sucesso; NULL em erro (consulte GetLastError).

Códigos de erro (GetLastError)

ERROR_ALREADY_EXISTS(183)
Não é possível criar um arquivo já existente.
ERROR_TOO_MANY_POSTS(298)
Excesso de operações de liberação (release) em um semáforo, ultrapassando seu máximo.

Relacionadas