次の方法で共有


KeInitializeSemaphore 関数 (wdm.h)

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

構文

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

パラメーター

[out] Semaphore

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

[in] Count

セマフォに割り当てる初期カウント値を指定します。 この値は正である必要があります。 0 以外の値を指定すると、セマフォの初期状態がシグナル通知に設定されます。

[in] Limit

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

戻り値

何一つ

備考

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

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する HwStorPortProhibitedDDDIs(storport), IrqlKeDispatchLte(wdm), PowerIrpDDis(wdm)

関連項目

KeReadStateSemaphore

KeReleaseSemaphore

KeWaitForMultipleObjects

KeWaitForSingleObject する