Fungsi KeInitializeEvent (wdm.h)

KeInitializeEvent rutin menginisialisasi objek peristiwa sebagai sinkronisasi (pelayan tunggal) atau peristiwa jenis pemberitahuan dan mengaturnya ke status bersinyalitik atau tidak diberi sinyal.

Sintaks

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

Parameter

[out] Event

Arahkan ke objek peristiwa, tempat pemanggil menyediakan penyimpanan.

[in] Type

Menentukan jenis peristiwa, baik NotificationEvent atau SynchronizationEvent.

[in] State

Menentukan status awal peristiwa. TRUE menunjukkan status yang disinyalkan.

Nilai kembali

Tidak ada

Keterangan

Penyimpanan untuk objek peristiwa harus residen: dalam ekstensi perangkat objek perangkat yang dibuat driver, di ekstensi pengontrol objek pengontrol yang dibuat driver, atau di kumpulan yang tidak disebarkan yang dialokasikan oleh pemanggil. Jika Anda mengalokasikan peristiwa pada tumpukan, Anda harus menentukan KernelMode tunggu saat memanggil KeWaitForSingleObject, KeWaitForMutexObject, atau KeWaitForMultipleObjects. Selama KernelMode menunggu, tumpukan yang berisi peristiwa tidak akan di-page out.

Driver biasanya menggunakan NotificationEvent untuk menunggu operasi I/O selesai. Saat peristiwa pemberitahuan diatur ke status disinyalkan, semua utas yang menunggu peristiwa diatur ke status yang disinyalkan memenuhi syarat untuk dieksekusi. Peristiwa tetap dalam status sinyal sampai utas memanggil KeResetEvent atau KeClearEvent untuk mengatur peristiwa dalam keadaan tidak diberi sinyal.

SynchronizationEvent juga disebut peristiwa autoreset atau autoclearing. Ketika peristiwa seperti itu diatur, satu utas tunggu menjadi memenuhi syarat untuk dieksekusi. Kernel secara otomatis mengatur ulang peristiwa ke status tidak diberi sinyal setiap kali penantian terpenuhi. Driver mungkin menggunakan peristiwa sinkronisasi untuk melindungi sumber daya bersama yang digunakan dalam menyinkronkan operasi beberapa utas.

Untuk informasi selengkapnya tentang objek peristiwa, lihat Objek Peristiwa.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 2000.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Tingkat apa pun
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), IoAllocateIrpSignalEventInCompletion(wdm), IoAllocateIrpSignalEventInCompletion2(wdm), IoAllocateIrpSignalEventInCompletion3(wdm), IoAllocateIrpSignalEventInCompletionTimeout(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)

Lihat juga

KeClearEvent

KeReadStateEvent

KeResetEvent

KeSetEvent

KeWaitForMultipleObjects

KeWaitForsingleObject