Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Driver dapat menggunakan peristiwa WMI untuk memberi tahu aplikasi mode pengguna tentang peristiwa tanpa mengharuskan aplikasi untuk melakukan pemantauan berkala atau mengirim IRP. Pengemudi harus menggunakan event WMI untuk memberi tahu klien WMI tentang kondisi luar biasa, bukan sebagai alternatif untuk pengelogan kesalahan. Driver harus mendukung blok peristiwa standar yang ditentukan untuk jenis perangkatnya di Wmicore.mof, dan mungkin menentukan dan mendaftarkan blok peristiwa kustom tambahan untuk mendukung pemberitahuan khusus perangkat.
Blok peristiwa hanyalah blok data yang berasal dari kelas dasar abstrak WMIEvent. Blok peristiwa dapat berisi salah satu data yang sama dengan blok data, atau dapat kosong—yaitu, blok peristiwa tidak boleh berisi item data yang ditentukan driver. Jika blok peristiwa berisi data, ukuran total WNODE_XXX ditambah data tidak boleh melebihi batas yang ditentukan registri 1 kilobyte. Secara umum, peristiwa yang lebih kecil menghasilkan performa sistem yang lebih baik dan pemberitahuan yang lebih tepat waktu. Untuk informasi tentang menentukan blok, lihat Sintaks MOF untuk Data WMI dan Blok Peristiwa danMerancang Data WMI dan Blok Peristiwa.
Driver menunjukkan dukungan untuk peristiwa dengan mendaftarkan blok peristiwa yang sesuai dengan WMIREG_FLAG_EVENT_ONLY_GUID diatur dalam struktur WMIREGGUID blok. Untuk informasi tentang mendaftarkan blok, lihat Mendaftar sebagai Penyedia Data WMI.
Ketika pengguna klien WMI meminta pemberitahuan peristiwa, WMI mengirimkan permintaan IRP_MN_ENABLE_EVENTS ke driver, yang memperingatkan driver untuk mulai memantau kondisi pemicu yang ditentukan driver peristiwa. Kemudian, ketika kondisi pemicu terjadi, driver mengirimkan peristiwa ke WMI, yang mengirimkannya ke semua konsumen data yang telah mendaftar untuk peristiwa tersebut.
Driver mengirimkan peristiwa ke WMI dengan salah satu cara berikut:
Panggil WmiFireEvent rutin pustaka WMI mode kernel. Driver dapat memanggil WmiFireEvent untuk mengirim hanya peristiwa yang tidak menggunakan nama instans dinamis, serta menggunakan nama instans statis dasar yang berbasis pada string nama dasar tunggal atau ID instans perangkat dari PDO. Selain itu, peristiwa harus berupa satu instans—yaitu, driver tidak dapat memanggil WmiFireEvent untuk mengirim peristiwa yang terdiri dari satu item atau beberapa instans. Untuk informasi selengkapnya, lihat Mengirim Peristiwa dengan WmiFireEvent.
Panggil rutin mode kernel IoWMIWriteEvent dengan pointer ke sebuah struktur WNODE_XXX yang telah dialokasikan dan diinisialisasi oleh driver, yang berisi data peristiwa. Untuk informasi selengkapnya, lihat Mengirim Peristiwa dengan IoWMIWriteEvent.