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) |