Fungsi ZwOpenEvent (wdm.h)

Rutinitas ZwOpenEvent membuka handel ke objek peristiwa bernama yang ada dengan akses yang diinginkan yang ditentukan.

Sintaksis

C++
NTSYSCALLAPI NTSTATUS ZwOpenEvent(
  [out] PHANDLE            EventHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

Parameter

[out] EventHandle

Penunjuk ke variabel yang akan menerima handel objek peristiwa. Handel mencakup informasi pembukuan, seperti jumlah referensi dan konteks keamanan.

[in] DesiredAccess

Nilai ACCESS_MASK yang mewakili jenis akses yang diinginkan untuk objek peristiwa. Tabel berikut berisi nilai ACCESS_MASK khusus peristiwa.

Nilai Akses yang diinginkan
EVENT_QUERY_STATE Mengkueri status objek peristiwa.
EVENT_MODIFY_STATE Ubah status objek peristiwa.
EVENT_ALL_ACCESS Semua kemungkinan hak akses ke objek peristiwa.

[in] ObjectAttributes

Penunjuk ke struktur atribut objek yang disediakan pemanggil untuk digunakan untuk objek yang ditentukan. Atribut ini akan mencakup ObjectName dan atribut handle, misalnya. Parameter ini diinisialisasi dengan memanggil makro InitializeObjectAttributes.

Mengembalikan nilai

ZwOpenEvent mengembalikan STATUS_SUCCESS atau status kesalahan yang sesuai. Rutinitas ini mungkin mengembalikan salah satu kode status kesalahan berikut:

Mengembalikan kode Deskripsi
STATUS_INSUFFICIENT_RESOURCES Sumber daya yang diperlukan fungsi ini tidak dapat dialokasikan.
STATUS_INVALID_PARAMETER Struktur ObjectAttributes tidak disediakan atau berisi nilai parameter yang tidak valid.
STATUS_OBJECT_NAME_INVALID Parameter ObjectAttributes berisi ObjectName dalam struktur OBJECT_ATTRIBUTES yang tidak valid.
STATUS_OBJECT_PATH_SYNTAX_BAD Jalur objek berisi sintaks yang salah. Misalnya, parameter ObjectAttributes tidak berisi anggota RootDirectory, tetapi anggota ObjectName dalam struktur OBJECT_ATTRIBUTES adalah string kosong atau tidak dimulai dengan karakter OBJECT_NAME_PATH_SEPARATOR.
STATUS_OBJECT_PATH_NOT_FOUND Jalur ke objek tidak ditemukan, menunjukkan bahwa itu tidak ada.
STATUS_OBJECT_NAME_NOT_FOUND Nama objek tidak ditemukan, menunjukkan bahwa objek tidak ada.
STATUS_PRIVILEGE_NOT_HELD Pemanggil tidak memiliki hak istimewa yang diperlukan untuk membuat handel dengan akses yang ditentukan dalam parameter DesiredAccess.

Komentar

ZwOpenEvent membuka objek peristiwa bernama yang ada dan membuat handel ke objek dengan akses yang diinginkan yang ditentukan.

ZwOpenEvent dapat membuka peristiwa pemberitahuan atau sinkronisasi.

Peristiwa digunakan untuk mengoordinasikan eksekusi. Driver sistem file dapat menggunakan peristiwa untuk memungkinkan pemanggil menunggu penyelesaian operasi yang diminta hingga peristiwa yang diberikan diatur ke status Sinyal.

Peristiwa pemberitahuan dapat digunakan untuk memberi tahu satu atau beberapa utas eksekusi bahwa suatu peristiwa telah terjadi. Peristiwa sinkronisasi dapat digunakan dalam serialisasi akses ke perangkat keras antara dua driver yang tidak terkait.

Jika panggilan ke fungsi ZwOpenEvent terjadi dalam mode pengguna, Anda harus menggunakan nama "NtOpenEvent" alih-alih "ZwOpenEvent".

Untuk panggilan dari driver mode kernel, NtXxx dan ZwXxx versi rutin Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menginterpretasikan parameter input. Untuk informasi selengkapnya tentang hubungan antara NtXxx dan versi ZwXxx rutin, lihat Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli.

Persyaratan

Syarat Nilai
Platform Target Universal
Header wdm.h (termasuk Wdm.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
aturan kepatuhan DDI HwStorPortProhibitedDIs (storport), PowerIrpDDis(wdm)

Lihat juga

ACCESS_MASK

InitializeObjectAttributes

IoCreateNotificationEvent

IoCreateSynchronizationEvent

KeClearEvent

KeResetEvent

KeSetEvent

KeWaitForSingleObject

Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli

ZwClose

ZwCreateEvent

ZwSetEvent

ZwWaitForSingleObject