Compartir a través de


Función KeInitializeSemaphore (wdm.h)

La rutina KeInitializeSemaphore inicializa un objeto de semáforo con un recuento especificado y especifica un límite superior que el recuento puede alcanzar.

Sintaxis

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

Parámetros

[out] Semaphore

Puntero a un objeto distribuidor de tipo semáforo, para el que el autor de la llamada proporciona el almacenamiento.

[in] Count

Especifica el valor de recuento inicial que se va a asignar al semáforo. Este valor debe ser positivo. Un valor distinto de cero establece el estado inicial del semáforo en señalizado.

[in] Limit

Especifica el valor de recuento máximo que puede alcanzar el semáforo. Este valor debe ser positivo. Determina cuántos subprocesos en espera son aptos para su ejecución cuando el semáforo se establece en el estado señalado y, por lo tanto, puede acceder al recurso que protege el semáforo.

Valor devuelto

None

Observaciones

El objeto de semáforo se inicializa con el recuento inicial y el límite especificados.

El almacenamiento de un objeto de semáforo debe residir: en la extensión del dispositivo de un objeto de dispositivo creado por el controlador, en la extensión del controlador de un objeto de controlador creado por el controlador o en un grupo no paginado asignado por el autor de la llamada.

Para obtener más información sobre los objetos de semáforo, vea Objetos de semáforo.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm)

Consulte también

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject