Partilhar via


Função KeInitializeSemaphore (wdm.h)

A rotina KeInitializeSemaphore inicializa um objeto semáforo com uma contagem especificada e especifica um limite superior que a contagem pode alcançar.

Sintaxe

void KeInitializeSemaphore(
  [out] PRKSEMAPHORE Semaphore,
  [in]  LONG         Count,
  [in]  LONG         Limit
);

Parâmetros

[out] Semaphore

Ponteiro para um objeto dispatcher do tipo semáforo, para o qual o chamador fornece o armazenamento.

[in] Count

Especifica o valor de contagem inicial a ser atribuído ao semáforo. Esse valor deve ser positivo. Um valor diferente de zero define o estado inicial do semáforo como sinalizado.

[in] Limit

Especifica o valor máximo de contagem que o semáforo pode alcançar. Esse valor deve ser positivo. Ele determina quantos threads de espera se tornam elegíveis para execução quando o semáforo é definido como o estado sinalizado e, portanto, pode acessar o recurso que o semáforo protege.

Valor de retorno

Nenhum

Observações

O objeto semáforo é inicializado com a contagem e o limite iniciais especificados.

O armazenamento de um objeto semáforo deve ser residente: na extensão do dispositivo de um objeto de dispositivo criado pelo driver, na extensão do controlador de um objeto de controlador criado pelo driver ou no pool nãopagado alocado pelo chamador.

Para obter mais informações sobre objetos semáforos, consulte Objetos semáforos.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível a partir do Windows 2000.
da Plataforma de Destino Universal
cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
regras de conformidade de DDI HwStorPortProhibitedDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm)

Consulte também

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject