KeInitializeSemaphore 函式 (wdm.h)

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

語法

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

參數

[out] Semaphore

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

[in] Count

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

[in] Limit

指定旗號可以取得的最大計數值。 這個值必須是正數。 它會決定當旗號設定為訊號狀態時,等候線程會變成符合執行資格,因此可以存取旗號所保護的資源。

傳回值

備註

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

旗號物件的記憶體必須位於:位於驅動程式建立裝置對象的裝置延伸模組、驅動程式建立控制器物件的控制器延伸模組,或呼叫端所配置的非分頁集區中。

如需旗號對象的詳細資訊,請參閱 旗號物件

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDDIs (storport) IrqlKeDispatchLte (wdm) PowerIrpDDis (wdm)

另請參閱

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject