Compartilhar 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 atingir.

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 de contagem máxima que o semáforo pode alcançar. Esse valor deve ser positivo. Ele determina quantos threads de espera se tornam qualificados para execução quando o semáforo é definido como o estado sinalizado e, portanto, pode acessar o recurso que o semáforo protege.

Retornar valor

Nenhum

Comentários

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
Cliente mínimo com suporte Disponível a partir do Windows 2000.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm)

Confira também

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject