次の方法で共有


KeInitializeEvent 関数 (wdm.h)

KeInitializeEvent ルーチンは、イベント オブジェクトを同期 (単一の待機者) または通知の種類のイベントとして初期化し、シグナル状態または非シグナル状態に設定します。

構文

void KeInitializeEvent(
  [out] PRKEVENT   Event,
  [in]  EVENT_TYPE Type,
  [in]  BOOLEAN    State
);

パラメーター

[out] Event

呼び出し元がストレージを提供するイベント オブジェクトへのポインター。

[in] Type

NotificationEvent または SynchronizationEvent イベントの種類を指定します。

[in] State

イベントの初期状態を指定します。 TRUE はシグナル状態を示します。

戻り値

何一つ

備考

イベント オブジェクトの記憶域は、ドライバーが作成したデバイス オブジェクトのデバイス拡張機能、ドライバーによって作成されたコントローラー オブジェクトのコントローラー拡張機能、または呼び出し元によって割り当てられた非ページ プールに存在する必要があります。 スタックにイベントを割り当てる場合は、KeWaitForSingleObject KeWaitForMutexObject、または KeWaitForMultipleObjects 呼び出すときに、KernelMode 待機を指定する必要があります。 KernelMode 待機中、イベントを含むスタックはページングされません。

ドライバーは通常、I/O 操作が完了するまで待機するために、NotificationEvent を使用します。 通知イベントがシグナル状態に設定されると、イベントがシグナル状態に設定されるのを待機していたすべてのスレッドが実行の対象になります。 スレッドが KeResetEvent 呼び出すか、KeClearEvent して非シグナル状態にイベントを設定するまで、イベントはシグナル状態のままになります。

SynchronizationEvent は、自動設定 または自動クリア イベント とも呼ばれます。 このようなイベントが設定されると、1 つの待機中のスレッドが実行の対象になります。 カーネルは、待機が満たされるたびに、イベントを自動的に通知されない状態にリセットします。 ドライバーは、同期イベントを使用して、複数のスレッドの操作の同期に使用される共有リソースを保護する場合があります。

イベント オブジェクトの詳細については、「イベント オブジェクトの 」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任意のレベル
DDI コンプライアンス規則 する HwStorPortProhibitedDDIs(storport), IoAllocateIrpSignalEventInCompletion(wdm), IoAllocateIrpSignalEventInCompletion2(wdm), IoAllocateIrpSignalEventInCompletion3(wdm), IoAllocate IrpSignalEventInCompletionTimeout(wdm), IoBuildDeviceControlWait(wdm), IoBuildDeviceControlWaitTimeout(wdm), IoBuildDeviceIoControlSetEvent(wdm), IoBuildFsdIrpSignalEventInCompletion(wdm), IoBuildFsdIrpSignalEventInCompletion2(wdm), IoBuildFsdIrpSignalEventInCompletion3(wdm), IoBuildFsdIrpSignalEventInCompletionTimeout(wdm), IoBuildSynchronousFsdRequestWait(wdm), IoBuildSynchronousFsdRequestWaitTimeout(wdm), PendedCompletedRequest(wdm), PendedCompletedRequestEx(wdm), SignalEventInCompletion(wdm), SignalEventInCompletion2(wdm), SignalEventInCompletion3(wdm), StartDeviceWait(wdm)、startDeviceWait2(wdm)

関連項目

KeClearEvent

KeReadStateEvent

KeResetEvent

KeSetEvent

KeWaitForMultipleObjects

KeWaitForSingleObject する