共用方式為


KeInitializeSemaphore 函式 (wdm.h)

KeInitializeSemaphore 例程會使用指定的計數初始化號誌物件,並指定計數可以達到的上限。

語法

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

參數

[out] Semaphore

信號類型的發送器物件的指標,呼叫端會提供記憶體。

[in] Count

指定要指派給號誌的初始計數值。 此值必須是正數。 非零值會將信號的初始狀態設定為已發出訊號。

[in] Limit

指定信號可以達到的最大計數值。 此值必須是正數。 它會決定當信號設定為訊號狀態時,有多少等候線程有資格執行,因此可以存取信號所保護的資源。

傳回值

沒有

言論

信號物件會以指定的初始計數和限制初始化。

信號對象的記憶體必須常駐:在驅動程式建立裝置對象的裝置延伸模組、驅動程式建立控制器物件的控制器擴充功能,或呼叫端所配置的非分頁集區中。

如需信號對象的詳細資訊,請參閱 Semaphore Objects

要求

要求 價值
最低支援的用戶端 從 Windows 2000 開始提供。
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIS(storport)IrqlKeDispatchLte(wdm)PowerIrpDDis(wdm)

另請參閱

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject