Bagikan melalui


Mendaftarkan Penyedia Peristiwa

Untuk membuat penyedia peristiwa WMI, Anda harus mendaftarkan instans __Win32Provider yang mewakili penyedia Anda menggunakan instans __EventProviderRegistration. Sebagai objek COM, penyedia Anda harus mendaftar dengan sistem operasi dan WMI. Prosedur berikut mengasumsikan bahwa Anda telah menerapkan proses pendaftaran seperti yang dijelaskan dalam Mendaftarkan Penyedia.

Prosedur berikut menjelaskan cara mendaftarkan penyedia peristiwa.

Untuk mendaftarkan penyedia peristiwa

  1. Buat instans kelas __Win32Provider yang menjelaskan penyedia.

  2. Buat instans kelas __EventProviderRegistration yang menjelaskan kumpulan fitur penyedia.

    Kelas __EventProviderRegistration mewarisi banyak properti dari kelas induk __ObjectProviderRegistration . Properti lokal ke kelas __EventProviderRegistration adalah jalur objek ke penyedia dan daftar kueri yang menjelaskan peristiwa yang didukung penyedia. Untuk informasi selengkapnya, lihat Mengkueri WMI.

  3. Muat implementasi kelas __Win32Provider dan __EventProviderRegistration Anda ke dalam repositori WMI.

    WMI menggunakan definisi kelas Anda untuk mendaftar dan mengakses penyedia acara Anda. Untuk informasi selengkapnya, lihat Mendaftarkan Penyedia.

Contoh kode berikut menjelaskan implementasi kelas __Win32Provider dan kelas __EventProviderRegistration .

instance of __Win32Provider as $P
{
    ClientLoadableCLSID = NULL;
    CLSID = "{AA7828C5-95F9-11d2-BB0D-00C042424242}";
    DefaultMachineName = NULL;
    ImpersonationLevel = 0;
    InitializationReentrancy = 0;
    InitializeAsAdminFirst = FALSE;
    Name = "FaxEventProvider";
    PerLocaleInitialization = FALSE;
    PerUserInitialization = FALSE;
    Pure = TRUE;
    UnloadTimeout = NULL;
};

instance of __EventProviderRegistration
{  
Provider = $P;
EventQueryList = {
         "SELECT * FROM FaxEvent",
         "SELECT * FROM __InstanceCreationEvent WHERE TargetInstance ISA \"Win32_LogicalDisk\""};
};

Kueri pertama menunjukkan bahwa penyedia menghasilkan semua pemberitahuan peristiwa untuk FaxEvent kelas peristiwa ekstrinsik. Karena menggunakan operator ISA, kueri kedua menyiratkan bahwa penyedia menghasilkan pemberitahuan untuk semua peristiwa pembuatan instans untuk kelas Win32_LogicalDisk dan semua subkelasnya.

Ketika penyedia mendaftar untuk memberikan peristiwa intrinsik, peristiwa harus berlaku untuk semua instans kelas. Dengan kata lain, kueri tidak dapat ditulis untuk menyediakan peristiwa pembuatan instans hanya untuk beberapa drive disk yang termasuk dalam kelas Win32_LogicalDisk .