Compartilhar via


ReleaseSemaphore

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função aumenta a contagem do objeto semáforo especificado uma quantidade especificada.

Syntax

BOOL ReleaseSemaphore(
  HANDLE hSemaphore,
  LONG lReleaseCount,
  LPLONG lpPreviousCount
);

Parameters

  • hSemaphore
    [no] Identificador para o objeto do semáforo. A função CreateSemaphore retorna esse identificador.
  • lReleaseCount
    [no] Especifica a quantidade pela qual a atual contagem do objeto do semáforo está para ser aumentado. O valor deve ser maior que zero. Se a quantidade especificada poderia causar a contagem do semáforo de exceder o contagem máxima que foi especificado quando o semáforo foi criado, a contagem não será alterada e a função retorna FALSE.
  • lpPreviousCount
    [out] Ponteiro longo para um 32-bit variável para receber a contagem anterior para o sinal. Este parâmetro pode ser NULL se a contagem anterior não for exigido.

Return Value

Nonzero indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.

Remarks

O estado de um objeto do semáforo está sinalizado quando sua contagem é maior que zero e não sinalizado quando sua contagem é igual a zero. O processo que chama o CreateSemaphore função especifica contagem inicial do semáforo. Cada tempo um segmento em espera é liberado because of sinalizado do semáforo de estado, a contagem do sinal é reduzido por um.

Geralmente, um aplicativo utiliza um sinal para limite o número de segmentos usando um recurso. Antes um segmento usa o recurso, ele especifica o identificador do semáforo em um chamar a uma das funções de espera. Quando a função de espera retorna, ele diminui contagem do semáforo por um. Quando tiver terminado o segmento usando o recurso, ele chama ReleaseSemaphore Para aumentar contagem do semáforo um.

Outro uso de ReleaseSemaphore é durante inicialização de um aplicativo. O aplicativo pode criar um semáforo com uma contagem inicial do zero. Isso define estado do semáforo de como não sinalizado e bloqueia todos os segmentos de acessar o recurso protegido. Quando o aplicativo termina sua inicialização, ele usa ReleaseSemaphore Para aumentar a contagem para seu valor máximo para permitir acessar normal para o recurso protegido.

Cada tipo objeto, such as memória mapas, semáforos, eventos, mensagem filas, exclusões mútuas e timers de monitoração, tem sua própria separar espaço para nome. Esvaziar seqüências de caracteres, " ", são tratados como nomeado objetos. Em plataformas com base em Área de trabalho Windows, sincronização objetos todos compartilhar o mesmo namespace.

Requirements

Header winbase.h
Library coredll.lib
Windows Embedded CE Windows CE 3.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Synchronization Functions
CreateSemaphore