Menerima Acara Setiap Saat
Anda mungkin ingin menulis aplikasi yang dapat bereaksi terhadap peristiwa kapan saja. Misalnya, administrator mungkin ingin menerima pesan email saat ukuran performa tertentu menurun di server jaringan. Dalam hal ini, aplikasi Anda harus berjalan setiap saat. Namun, menjalankan aplikasi terus menerus bukanlah penggunaan sumber daya sistem yang efisien. Sebagai gantinya, WMI memungkinkan Anda membuat konsumen peristiwa permanen. Pengguna acara permanen harus memenuhi persyaratan keamanan khusus. Untuk informasi selengkapnya, lihat Mengamankan Acara WMI.
Konsumen acara permanen menerima acara hingga registrasinya dibatalkan secara eksplisit.
Konsumen peristiwa permanen adalah kombinasi dari kelas, filter, dan objek COM WMI berikut yang berada di sistem Anda:
- Objek COM yang disebut konsumen fisik. WMI memasok beberapa konsumen permanen standar. Misalnya, pengguna Peristiwa Skrip Aktif menjalankan skrip saat peristiwa terjadi.
- Kelas konsumen permanen baru.
- Instans kelas konsumen permanen yang disebut konsumen logis.
- Filter yang berisi kueri untuk peristiwa.
- Tautan antara konsumen dan filter.
Properti konsumen peristiwa logis menentukan tindakan yang akan dilakukan saat diberi tahu tentang suatu peristiwa, tetapi tidak menentukan kueri peristiwa yang terkait dengannya. Ketika ada sinyal, WMI secara otomatis memuat objek COM yang mewakili konsumen peristiwa permanen ke dalam memori yang aktif. Biasanya, ini terjadi selama startup atau sebagai respons terhadap peristiwa pemicu. Setelah diaktifkan, pengolah peristiwa permanen bertindak seperti pengolah peristiwa biasa, tetapi tetap ada sampai diunload oleh sistem operasi.
Anda dapat menulis konsumen peristiwa permanen Anda sendiri atau menggunakan WMI yang telah diinstal sebelumnya Kelas Konsumen Standar, seperti ActiveScriptEventConsumer. Untuk informasi selengkapnya, lihat Kelas Konsumen Standar, Memantau dan Menanggapi Peristiwa dengan Konsumen Standar, dan Memantau Peristiwa.
Prosedur berikut menjelaskan cara membuat konsumen acara permanen Anda sendiri.
Untuk membuat konsumen acara permanen Anda sendiri
Tentukan jenis peristiwa apa yang ingin Anda terima.
WMI mendukung peristiwa intrinsik dan ekstrinsik. Peristiwa intrinsik adalah peristiwa yang telah ditentukan sebelumnya oleh WMI, sedangkan peristiwa ekstrinsik adalah peristiwa yang ditentukan oleh penyedia pihak ketiga. Untuk informasi selengkapnya, lihat Menentukan Jenis Peristiwa untuk Menerima.
Menerapkankonsumen fisik .
Perbedaan utama antara aplikasi manajemen dankonsumen fisikadalah pengguna memuat dan membongkar aplikasi manajemen, sedangkan WMI memuat dan membongkar konsumen fisik. Sebagian besar pengkodean Anda seharusnya berfokus pada pengalaman konsumen fisik.
Nota
Langkah ini adalah langkah pertama dalam prosedur untuk memudahkan penjelasan. Dalam hal pemrograman, Anda sebaiknya membuat konsumen fisik di akhir. Dengan demikian, Anda dapat menjabarkan parameter dan logika untuk penyedia peristiwa permanen anda sebelum memulai pengkodan yang panjang. Namun, tidak ada batasan untuk menulis konsumen fisik terlebih dahulu.
Buat kelas konsumen baru yang mendeskripsikan konsumen fisik.
Seperti kelas lainnya, kelas konsumen menjelaskan parameter umum dari konsumen peristiwa permanen untuk WMI.
Buatlah sebuah instance dari kelas konsumen.
Seperti kelas WMI lainnya, Anda harus membuat instance dari kelas konsumen jika Anda ingin mengimplementasikan kelas tersebut. Sebuah objek dari kelas konsumen juga dikenal sebagai konsumen logis . Konsumen logis mewakili konsumen fisik untuk WMI.
-
Kueri peristiwa yang mengaktifkan konsumen peristiwa permanen disebut filter peristiwa . Sebuah filter peristiwa dapat dikaitkan dengan beberapa konsumen peristiwa logis. Selain itu, beberapa filter event dapat dikaitkan dengan satu pengguna event logis. Filter adalah instans __EventFilter.
Peristiwa Log NT dihasilkan saat kueri konsumen peristiwa permanen gagal. Sumber peristiwa adalah WinMgmt, ID peristiwa adalah 10, dan jenis peristiwanya adalah Kesalahan.
Hubungkan filter peristiwa ke konsumen logis.
Dengan menautkan filter peristiwa ke konsumen logis, Anda menginstruksikan WMI tentang filter peristiwa mana milik konsumen logis mana. Konsumen peristiwa logis dan filter peristiwa ditautkan melalui sebuah instans dari kelas asosiasi __FilterToConsumerBinding. Saat peristiwa yang diterima cocok dengan kueri peristiwa yang dijelaskan dalam filter peristiwa, WMI menemukan konsumen peristiwa logis terkait dengan memeriksa instans kelas asosiasi. Setelah instans konsumen peristiwa logis ditemukan, WMI menggunakan instans kelas __EventConsumerProviderRegistration untuk menemukan dan menjalankan konsumen peristiwa fisik yang berhubungan dengan instans ini.
Menulis penyedia konsumen peristiwa.
Penyedia konsumen event adalah objek COM yang mengidentifikasi konsumen fisik dalam WMI.