KeInitializeSemaphore 関数 (wdm.h)

KeInitializeSemaphore ルーチンは、指定されたカウントを使用してセマフォ オブジェクトを初期化し、カウントで取得できる上限を指定します。

構文

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

パラメーター

[out] Semaphore

呼び出し元がストレージを提供する、セマフォ型のディスパッチャー オブジェクトへのポインター。

[in] Count

セマフォに割り当てる初期カウント値を指定します。 必ず正の値を指定します。 0 以外の値を指定すると、セマフォの初期状態が signaled に設定されます。

[in] Limit

セマフォが取得できる最大カウント値を指定します。 必ず正の値を指定します。 セマフォがシグナル状態に設定され、セマフォが保護するリソースにアクセスできる場合に、実行の対象となる待機スレッドの数が決定されます。

戻り値

なし

解説

セマフォ オブジェクトは、指定された初期カウントと制限で初期化されます。

セマフォ オブジェクトの記憶域は、ドライバーによって作成されたデバイス オブジェクトのデバイス拡張機能、ドライバーによって作成されたコントローラー オブジェクトのコントローラー拡張機能、または呼び出し元によって割り当てられた非ページ プール内に存在する必要があります。

セマフォ オブジェクトの詳細については、「 Semaphore オブジェクト」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm)

こちらもご覧ください

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject