Mendaftarkan Penyedia Acara
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 acara.
Untuk mendaftarkan penyedia acara
Buat instans kelas __Win32Provider yang menjelaskan penyedia.
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.
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 lebih lanjut, lihat Pendaftaran 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 kelas peristiwa ekstrinsik FaxEvent. 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.