KeInitializeSemaphore 函数 (wdm.h)

KeInitializeSemaphore 例程使用指定的计数初始化信号灯对象,并指定计数可以达到的上限。

语法

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

参数

[out] Semaphore

指向信号灯类型的调度程序对象的指针,调用方为其提供存储。

[in] Count

指定要分配给信号量的初始计数值。 该值必须是正数。 非零值将信号灯的初始状态设置为已发出信号。

[in] Limit

指定信号灯可以达到的最大计数值。 该值必须是正数。 它确定当信号灯设置为信号状态时,有多少等待线程有资格执行,因此可以访问信号灯保护的资源。

返回值

备注

信号灯对象使用指定的初始计数和限制进行初始化。

信号灯对象的存储必须驻留在驱动程序创建的设备对象的设备扩展中、驱动程序创建的控制器对象的控制器扩展中,或位于调用方分配的非分页池中。

有关信号灯对象的详细信息,请参阅 信号灯对象

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) IrqlKeDispatchLte (wdm) PowerIrpDDis (wdm)

另请参阅

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject