Bagikan melalui


Mengikat Filter Peristiwa dengan Konsumen Logis

Setelah Anda membuat konsumen peristiwa logis dan filter peristiwa, Anda harus menautkannya, yang mendaftarkan konsumen logis untuk menerima pemberitahuan tentang peristiwa yang ditentukan oleh filter.

Prosedur berikut menjelaskan cara mengikat filter peristiwa dengan konsumen logis.

Untuk mengikat filter peristiwa dengan konsumen logis

  1. Buat instans kelas sistem __FilterToConsumerBinding di repositori WMI.

    Kelas __FilterToConsumerBinding adalah kelas asosiasi yang menautkan instans filter peristiwa dan instans konsumen logis bersama-sama melalui properti referensi Filter dan Konsumen . Untuk informasi selengkapnya, lihat Mendeklarasikan Kelas Asosiasi.

  2. Atur properti Filter ke instans filter Anda.

  3. Atur properti Konsumen ke instans konsumen logis Anda.

  4. Atur properti DeliverSynchronously untuk menentukan jenis pengiriman yang Anda inginkan.

    Properti DeliverSynchronously menentukan kapan WMI memberikan pemberitahuan peristiwa secara sinkron atau asinkron. Mengatur properti ini ke TRUE meminta pengiriman sinkron. Gunakan pengiriman sinkron hanya ketika konsumen permanen dapat memproses peristiwa dalam sekitar 100 mikro detik.

    Catatan

    Karena panggilan balik ke sink mungkin tidak dikembalikan pada tingkat autentikasi yang sama dengan yang dibutuhkan klien, disarankan agar Anda menggunakan semisinkron alih-alih komunikasi asinkron. Untuk informasi selengkapnya, lihat Memanggil Metode.

     

  5. Saat membatalkan pendaftaran konsumen peristiwa logis Anda, pastikan Anda menghapus instans __FilterToConsumerBinding .

    Setiap instans __FilterToConsumerBinding mewakili pendaftaran untuk pemberitahuan peristiwa tertentu. Saat Anda menghapus pengikatan, WMI menonaktifkan pendaftaran. Anda mungkin harus menghapus instans filter konsumen dan peristiwa logis untuk menonaktifkan pendaftaran, tergantung pada implementasinya.

Contoh kode berikut menunjukkan kepada Anda instans __FilterToConsumerBinding yang mengaitkan instans kelas ActiveScriptEventConsumer dengan filter peristiwa tertentu (instans konsumen peristiwa dibuat dalam topik Membuat Konsumen Logis , dan filter peristiwa dibuat dalam topik Membuat Filter Peristiwa ).

instance of __FilterToConsumerBinding
{
    Filter = $FILTER;
    Consumer = $CONSUMER;
    DeliverSynchronously=FALSE;

    // this is the Administrators SID in array of bytes format
    CreatorSID = {1,2,0,0,0,0,0,5,32,0,0,0,32,2,0,0}; 
};

Dua konsumen, ActiveScriptEventConsumer dan CommandLineEventConsumer, tidak akan berfungsi kecuali pembuatnya adalah anggota grup Administrator lokal.

: Saat administrator membuat langganan, SID-nya tidak digunakan untuk properti CreatorSID , tetapi SID grup Administrator lokal digunakan sebagai gantinya. Oleh karena itu, instans dapat dibuat oleh administrator yang berbeda dan langganan akan tetap berfungsi. Untuk informasi selengkapnya, lihat Menerima Peristiwa dengan Aman.

Saat filter terikat ke konsumen logis, peristiwa direkam oleh Pelacakan Peristiwa untuk Windows (ETW). Untuk informasi selengkapnya, lihat Melacak Aktivitas WMI.

Menerima Peristiwa Setiap Saat